簡體   English   中英

使用jquery向非本機服務器發送Authorization標頭時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM