我在调用自制API服务时发送一个字符串和Authorization
标题。在服务器端,我使用PHP的apache_request_headers()
方法接收这些信息,以拆分所有标题信息并通过Authorization
获取字符串以供我进一步使用。
我做的Ajax Call:
$.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提供程序保留在我的localhast或远程服务器的同一域/ 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"
因此,没有更多允许来源问题,它现在发送/获取由jQuery 问题设置的PHP端头信息。
答案 0 :(得分:3)
您可以将其添加到.htaccess
中RewriteRule ^ - [E = HTTP_AUTHORIZATION:%{HTTP:授权}]