我在调用自制API服务时将字符串与Authorization标头一起发送。在服务器端,我使用PHP的apache_request_headers()方法接收这些信息,以拆分所有标头信息并获取通过Authorization发送的字符串,以供进一步使用。
我拨打的Ajax电话:

$.ajax({
        type: "GET",
        url: "http://x.x.x.x/speaker/api/sounds",
        headers: {
            "Authorization": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        success: function(response){
                console.log(response);
        },
        error: function(response){
            console.log(response);
        }
});


注意:如果我从在API提供程序脚本的相同域内运行的客户端脚本进行调用,则可以接收Authorization标头的发送值。例如-如果API使用者脚本和API提供程序位于我的本地服务器或远程服务器的相同域/ ip下,则一切正常。

问题:仅当我从API提供程序的位置以外的其他位置运行客户端脚本时,此方法不起作用。它返回并显示在浏览器(Chrome)控制台中的Invalid HTTP status code 404错误。

我已经将.htaccess文件更新为:

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "*"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"


因此,不再有Allowing Origin问题,它现在是由jQuery问题在PHP端设置的“发送/获取自定义标头信息”。

最佳答案

您可以将其添加到您的.htaccess中


  RewriteRule ^-[E = HTTP_AUTHORIZATION:%{HTTP:Authorization}]

关于javascript - 使用jquery向非 native 服务器发送Authorization header 时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26818026/

10-10 22:12