2015-11-13 75 views
0

我在服務器上使用設備檢測PHP腳本,mobiledetect.net,通常用戶的瀏覽器會直接調用服務器上的這個腳本,顯然,檢測腳本會獲得所有HTTP標頭(它用於設備檢測)直接這樣。如何從客戶端通過JQuery AJAX調用發送HTTP頭到PHP腳本?

如果我通過運行在用戶瀏覽器上的javascript的JQuery AJAX調用調用同一個服務器端PHP檢測腳本,它是否會收到它需要檢測的所有HTTP頭,就像直接使用方法一樣?即JQuery是否允許或設置腳本中AJAX調用的所有HTTP標頭,因爲瀏覽器會直接?

如果不是,我將如何實現這一目標?

頭檢測腳本要求是:HTTP_ACCEPT,HTTP_X_WAP_PROFILE,HTTP_X_WAP_CLIENTID,HTTP_WAP_CONNECTION,HTTP_PROFILE,HTTP_X_OPERAMINI_PHONE_UA,HTTP_X_NOKIA_GATEWAY_ID,HTTP_X_ORANGE_ID,HTTP_X_VODAFONE_3GPDPCONTEXT,HTTP_X_HUAWEI_USERID,HTTP_UA_OS, HTTP_X_MOBILE_GATEWAY,HTTP_X_ATT_DEVICEID,HTTP_UA_CPU

非常感謝。

回答

1

是的,你可以在你的Ajax調用設置HTTP頭:

$.ajax({ 
    url: 'YourRestEndPoint', 
    headers: { 
     'header1':'xxxxxxxxxxxxx', 
     'herader2':'xxxxxxxxxxxxxxxxxxxx', 
     'Content-Type':'application/json' 
    }, 
    method: 'POST', 
    dataType: 'json', 
    data: YourData, 
    success: function(data){ 
     console.log('succes: '+data); 
    } 
    }); 

請在這裏找到更多信息:Add Header in AJAX Request with jQuery。 要獲取HTTP標頭的值,可以使用下面的代碼:

var req = new XMLHttpRequest(); 
req.open('GET', document.location, false); 
req.send(null); 
var headers = req.getAllResponseHeaders().toLowerCase(); 
alert(headers); 

更多信息here

+0

好,謝謝,但我不希望設置自定義頁眉自己,我要穿過頭上面提到瀏覽器會設置一個直接的頁面請求。我如何在JQuery中引用它們,以便按照您描述的方式傳遞它們?謝謝! –

相關問題