Ich erstelle eine Safari-Erweiterung und injiziere js in dieseErweiterung. In diesem JS-Code sende ich einen Ajax-Aufruf, der folgenden Fehler in der Konsole erzeugt. "Das Anforderungsheaderfeld X-Requested-With ist von Access-Control-Allow-Headers nicht zulässig." Hier ist mein Code:
Diese Funktion habe ich aus dem Netz kopiert, um domänenübergreifende Probleme zu lösen, aber es funktioniert nicht. Bitte helfen Sie mir, dies herauszufinden.
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// XHR has "withCredentials" property only if it supports CORS
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") { // if IE use XDR
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
xhr = null;
}
return xhr;
}
var request = createCORSRequest("get", "https://www.karmora.com/list.xml");
if (request) {
// Define a callback function
request.onload = function () {
};
// Send request
request.send();
}
$.get("https://example.com", function (data) {
alert("Ajax call successfull");
});
Antworten:
1 für die Antwort № 1Ihr Problem hängt mit zusammen Same-origin_policy
Wenn Sie Zugriff auf den Server haben, fügen Sie der virtuellen Hostkonfiguration von Apache Web Server die folgenden Einstellungen hinzu:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"