我在调用自制API服务时发送字符串以及Authorization
标头。在服务器端,我使用PHP的apache_request_headers()
方法接收这些信息,将所有标题信息分开,并通过Authorization
发送字符串以供我进一步使用。
AJAX调用我做:使用jquery向非本地服务器发送授权标头时出错
$.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);
}
});
注:我可以接收Authorization
头的发送值如果我从中API提供脚本的同一区域内部运行的客户端脚本调用。例如 - 如果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"
那么,有没有更允许起源问题,它现在发送/获取自定义标题在PHP结束的jQuery问题的设置信息。
**更新:**卷曲从任何地方到我服务器甚至可以正常工作'''curl http:// xxxx/speaker/api/sounds -H'授权:xxxxxxxxxxxxxxxxxxxxxxx'''' 从任何未经授权的位置使用'''OPTIONS'''似乎通过JS 。 – 2014-11-08 16:39:59