Javascript 使用jquery向非本机服务器发送授权标头时出错

Javascript 使用jquery向非本机服务器发送授权标头时出错,javascript,php,jquery,ajax,.htaccess,Javascript,Php,Jquery,Ajax,.htaccess,调用自制API服务时,我将发送一个字符串以及授权头。在服务器端,我使用PHP的apache\u request\u headers()方法接收这些信息,以分离所有头信息,并通过Authorization获取发送的字符串供我进一步使用。 我打了一个电话: $.ajax({ type: "GET", url: "http://x.x.x.x/speaker/api/sounds", headers: { "Authorizati

调用自制API服务时,我将发送一个字符串以及
授权
头。在服务器端,我使用PHP的
apache\u request\u headers()
方法接收这些信息,以分离所有头信息,并通过
Authorization
获取发送的字符串供我进一步使用。
我打了一个电话:

$.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提供程序脚本的同一域内运行的客户端脚本进行调用,我可以收到
授权
头的发送值。例如-如果API使用者脚本和API提供程序位于我的localhast中或在我的远程服务器的同一域/ip下,则所有这些都可以正常工作

问题:仅当我从API提供程序位置以外的位置运行客户端脚本时,此问题才起作用。它返回时在浏览器(Chrome)控制台中观察到
无效HTTP状态代码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"

因此,不再有允许原始版本发布,它现在发送/获取jQuery设置的PHP端自定义头信息。

您可以将其添加到.htaccess中

重写规则^-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]


运气不好,@tareq jobayere发送和接收授权值不是阻塞问题。它的工作,但不是在不同的位置。只有当授权来自不同的来源时,授权才会被正确接收。为什么像Advanced REST client这样的工具会发送这些头并由服务器端完美地处理呢!但是,例如,从本地服务器调用远程服务器会带来痛苦。更新:从任何地方到我的服务器的CURL都可以正常工作
CURLhttp://x.x.x.x/speaker/api/sounds -H“Authorization:xxxxxxxxxxxxxxxxxxxx”
在通过JS从任何未经授权的位置使用
选项时,似乎是一个证书问题。