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