Gemäß Anfragen mit Anmeldeinformationen sendet Firefox nur Anmeldeinformationen zusammen mit domänenübergreifenden Posts, wenn
invocation.withCredentials = "true";
ist festgelegt ... Aber es scheint nicht, dass die Ajax-API von jQuery einen Mechanismus dafür bietet.
Gibt es etwas, das ich vermisst habe? Gibt es eine andere Möglichkeit, wie ich es tun kann?
javascript
jquery
cross-domain
David Wolever
quelle
quelle
Mit dem
beforeSend
Rückruf können Sie zusätzliche Parameter festlegen (dasXMLHTTPRequest
Objekt wird als einziger Parameter an das Objekt übergeben).Nur damit Sie wissen, funktioniert diese Art der domänenübergreifenden Anforderung in einem normalen Site-Szenario und nicht mit einem anderen Browser. Ich weiß nicht einmal, welche Sicherheitsbeschränkungen FF 3.5 ebenfalls auferlegt, nur damit Sie Ihren Kopf nicht umsonst gegen die Wand schlagen:
$.ajax({ url: 'http://bar.other', data: { whatever:'cool' }, type: 'GET', beforeSend: function(xhr){ xhr.withCredentials = true; } });
Eine weitere Sache, die Sie beachten sollten, ist, dass jQuery so eingerichtet ist, dass Browserunterschiede normalisiert werden. Möglicherweise werden von der jQuery-Bibliothek weitere Einschränkungen auferlegt, die diese Art von Funktionalität verbieten.
quelle
method: 'GET'
wird unterstützt. api.jquery.com/jquery.ajaxIn jQuery 3 und möglicherweise früheren Versionen funktioniert die folgende einfachere Konfiguration auch für einzelne Anforderungen:
$.ajax( 'https://foo.bar.com, { dataType: 'json', xhrFields: { withCredentials: true }, success: successFunc } );
Der vollständige Fehler, den ich auf der Registerkarte Firefox Dev Tools -> Netzwerk (auf der Registerkarte Sicherheit für eine einzelne Anfrage) erhielt, war:
quelle