0
這裏是一個Android手機applicati上,我從中進行調用SAP服務器。我穿過一個很奇怪的問題來了。 我正在對服務器進行ajax調用,並按預期獲取數據。 但問題是getResponseHeader是空的。但是我可以在瀏覽器控制檯中看到響應標題,並且符合我的預期。 如何獲得響應頭? Browser Console imagegetResponseHeader是空
var a = {};
a = {
// object that contains HTTP headers as name value pairs
"Authorization" : "Basic " + btoa(username + ":" + password),
"X-CSRF-Token" : "Fetch",
},
$.ajax({
type: "GET",
cache: false,
url: requestUri1,
headers: a,
success: function(a, b, c) {
globalTocken = c.getResponseHeader("X-CSRF-Token");
alert(globalTocken);
},
statusCode: {
401: function() {
alert("User name and password is wrong");
},
403: function() {
alert("error 403");
}
},
error: function(a, b) {
alert(b);
}
});
我也曾嘗試這些方法。
OData.request ({
requestUri: requestUri1,
method: "GET",
headers: {
"Authorization" : "Basic " + btoa(user_name + ":" + pass_word),
"X-Requested-With": "XMLHttpRequest",
"Content-Type": "application/atom+xml",
"DataServiceVersion": "2.0",
"X-CSRF-Token":"Fetch"
}
},
function (data, response)
{
var header_xcsrf_token = response.headers['x-csrf-token'];
//console.log(header_xcsrf_token);
alert(header_xcsrf_token);
},function(err) {
//Error Callback:
alert("Error occurred " + err.message + err.response.statusText);
});
另一種方式
var request = {
headers : {
// object that contains HTTP headers as name value pairs
"Authorization" : "Basic " + btoa(user_name + ":" + pass_word),
"X-CSRF-Token" : "Fetch",
},
requestUri : requestUri1, // OData endpoint URI
method : "GET",
datatype : "json",
};
OData
.read(
request,
function(data,response) {
x_csrf_token = response.headers["X-CSRF-Token"];
}, function(err) {
//Error Callback:
alert("Error occurred " + err.message + err.response.statusText);
});
}
客戶端和服務器在同一個域中? – user3083618
不,因爲在請求的資源上存在第一個'Access-Control-Allow-Origin'標頭。原因'空'因此不允許訪問。'錯誤即將到來。然後,我在Crome中安裝了Allow-Control-Allow-Origin:extension。現在我正面臨着這個錯誤。 –
如果您調用getAllResponseHeaders(),結果如何? – user3083618