hier ist ein Android mobile applicati auf, von dem ich Anruf an SAP SERVER bin. Ich stieß auf ein sehr seltsames Problem. Ich mache einen Ajax-Anruf zum Server und bekomme Daten wie erwartet. aber das Problem ist, dass getResponseHeader leer ist. Aber ich kann den Response-Header in der Browser-Konsole sehen und es entspricht meinen Erwartungen. Wie bekomme ich den Antwortheader? Browser Console imagegetResponseHeader ist leer
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);
}
});
Ich habe auch diese Art und Weise versucht.
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);
});
Ein anderer Weg
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);
});
}
Client und Server sind in der gleichen Domäne? – user3083618
Nein, weil der erste 'Access-Control-Allow-Origin'-Header auf der angeforderten Ressource vorhanden ist. Origin 'null' ist daher nicht erlaubt. ' FEHLER kam. Dann habe ich Allow-Control-Allow-Origin: extension in crome installiert. Jetzt stehe ich vor diesem Fehler. –
Wenn Sie getAllResponseHeaders() aufrufen, was ist das Ergebnis? – user3083618