我在调用自制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/