Fehler beim ausführen von 'senden' auf 'XMLHttpRequest'
Arbeite ich an einer Cordova-Anwendung, die ajax verwenden. Mein problem ist, dass im debug die app funktioniert. Aber wenn ich ein release, bekam ich die Fehlermeldung :
{"readyState":0,"status":0,"statusText":"NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'https://sub.domain.tld'."}
Ich verstehe nicht von wo Sie kommen.
Ich fügte hinzu, erforderlich, Zeilen, um die res/xml/config.xml
<access origin="*" />
<access uri="*" subdomains="true" />
<feature name="http://api.phonegap.com/1.0/network"/>
Und die Erlaubnis, im INTERNET werden dem AndroidManifest. Aber der Fehler ist immer noch geschieht...
Ach, hier ist mein ajax-Aufruf:
jQuery.support.cors = true;
$.ajax(
{
accepts: {
xml: "text/xml; charset=ISO-8859-1",
text: "text/plain; charset=ISO-8859-1"
}
, converters: {
"text xml": jQuery.parseXML
}
, type: "POST"
//, contentType: "text/xml; charset=ISO-8859-1"
, contentType : "application/x-www-form-urlencoded; charset=iso-8859-1"
, url: address
, async: false
, cache: false
, crossDomain: false
, data: msg
, dataType: "text"
, global: false
, ifModified: false
, username: this.params.server.login
, password: this.params.server.pass
, timeout: 500000
, beforeSend: function(jqXHR) {
jqXHR.overrideMimeType('text/xml;charset=iso-8859-1');
jqXHR.setRequestHeader("Access-Control-Allow-Origin", "*");
jqXHR.setRequestHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
jqXHR.setRequestHeader("Access-Control-Allow-Methods","POST, GET, OPTIONS, DELETE, PUT, HEAD");
}
}
)
Hoffen, dass Sie werde in der Lage sein, mir zu helfen eine Lösung zu finden.
jQuery.support.cors = true;
- warum sind Sie überschreiben die jQuery-cors-Erkennung? Wenn ein browser nicht unterstützt cors, dann erzählen jQuery tut es nicht, helfen Sie mit nichts.Access-Control-Allow-*
sind die Antwort - Header, gesendet den server. Senden diese Header in Ihrer Anfrage, was zu ruinieren Ihre Anfrage. Ich haben wenig Erfahrung mit Cordova ' s cross-origin-Verhalten, obwohl, also ich weiß es nicht sicher.Ich fügte hinzu, Jquery.Unterstützung.cors und die 3 dauert setRequestHeader hatte, wenn ich mein problem. Es war nicht vor der Arbeit.
Funktioniert es ohne die "async" option auf false gesetzt?
InformationsquelleAutor Kyu_ | 2015-02-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den jQuery-Dokumentation Staaten:
Seit Ihr
beforeSend
- Funktion nicht über eine return-Anweisung zurückundefined
ist falsy. Ich gehe davon aus, dass hebt Ihre Anfrage (auch wenn ich nicht testen). Versuchen Sie, die Rücksendungtrue
am Ende IhrerbeforeSend
Funktion.Das ist wahr. Ich sollte mehr Lesen sorgfältig 🙂 Hoffe, du wirst eine Lösung finden.
Danke, ich hoffe auch. Ich werde tun, hat Sie gesagt, es könnte vermeiden, dass eine mögliche zukünftige Fehler.
InformationsquelleAutor jonas