[英]Error while sending Authorization header using jquery to a non native server
我在調用自制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提供程序的位置以外的其他位置運行客戶端腳本時,此方法不起作用。 它返回的Invalid HTTP status code 404
錯誤在瀏覽器(Chrome)控制台中觀察到。
我已經將.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}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.