Frage

Ich bin auf einigen Javascript arbeiten, die Verwendung von Firefox 3.5 Fähigkeit macht Cross-Domain-XMLHttpRequests ausführen ... Aber ich mag anmutig scheitern, wenn sie nicht unterstützt werden.

Neben eigentlich eine Cross-Domain Anfrage macht, gibt es eine Möglichkeit, ein Browser-Unterstützung für sie zu erkennen?

War es hilfreich?

Lösung

Für die Zukunft, voll CORS Feature-Erkennung wie folgt aussehen sollte:

//Detect browser support for CORS
if ('withCredentials' in new XMLHttpRequest()) {
    /* supports cross-domain requests */
    document.write("CORS supported (XHR)");
}
else if(typeof XDomainRequest !== "undefined"){
  //Use IE-specific "CORS" code with XDR
  document.write("CORS supported (XDR)");
}else{
  //Time to retreat with a fallback or polyfill
  document.write("No CORS Support!");
}

Sie können diesen Test versuchen Live JSBin und sehen Sie die richtige Antwort in IE, Firefox, Chrome, Safari verwenden und Oper.

Es gibt einige Grenzfälle in Nicht-Browser-Umgebungen, die unterstützen Cross-Domain-XHR aber nicht XHR2 / CORS. Dieser Test berücksichtigt nicht für solche Situationen.

Andere Tipps

Nach http://hacks.mozilla.org / 2009/07 / Cross-Site-xmlhttprequest-mit-cors / sollten Sie in der Lage sein zu verwenden:

if ('withCredentials' in new XMLHttpRequest()) {
    /* supports cross-domain requests */
}

(Anmerkung:.. Es ist ein Kommentar auf dieser Seite, die Chrome 2 diesen Test nicht besteht [obwohl es Cross-Domain-Anfragen jedoch zwingend nötig] Getestet habe ich Chrome 3 und der Test ist nun vorbei)

Beachten Sie, dass, nur weil der Browser die Cross-Domain-API bedeutet nicht unterstützen könnte der Zielserver die Anforderung abzuschließen können.

Sie können unter EasyXDM aussehen wollen, die Cross-Browser-Macken wickelt und bietet eine einfach zu bedien API für in Client-Skript zwischen verschiedenen Domänen in Verbindung steht, den besten verfügbaren Mechanismus für diesen Browser (zB mit postmessage wenn verfügbar, andere Mechanismen, wenn nicht).

Klar ist, dass Bibliothek des Browser-Funktionen Erkennung Problem gelöst, so dass Sie von ihren Erfahrungen profitieren können. : -)

IE8 hat auch XDomainRequest Objekt die verwendet werden können RSS als Text abgerufen werden, die später in DOM analysiert werden können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top