AJAX in Chrom Versand-OPTIONEN anstelle von GET/POST/PUT/DELETE?

Ich arbeite auf einer internen web-Applikation bei der Arbeit. Im IE10 die Anfragen funktionieren, aber in Chrome alle AJAX-Anfragen (davon gibt es viele) werden per OPTIONEN anstelle von was auch immer definierten Methode, die ich gebe. Technisch meine Anforderungen sind: "cross-domain." Die Website wird serviert auf localhost:6120 und den service, den ich bin die Bereitstellung von AJAX-Anfragen zu ist auf 57124. Diese geschlossene jquery bug definiert das Problem aber nicht wirklich beheben.

Was kann ich tun, um über die korrekte http-Methode in ajax-Anfragen?

Edit:

Dies ist in dem Dokument laden jeder Seite:

jQuery.support.cors = true;

Und jeder AJAX ist ähnlich aufgebaut:

var url = 'http://localhost:57124/My/Rest/Call';
$.ajax({
    url: url,
    dataType: "json",
    data: json,
    async: true,
    cache: false,
    timeout: 30000,
    headers: { "x-li-format": "json", "X-UserName": userName },
    success: function (data) {
        //my success stuff
    },
    error: function (request, status, error) {
        //my error stuff
    },
    type: "POST"
});
Der Letzte Kommentar in diesem bug-report erklärt, es ziemlich gut...
Es umgedreht, mein Geist, weil alles, was ich Tue, ist so Vanille (und mein code ist ähnlich wie in den jquery-Fehler). Das beiseite, es ist keine Ausrede, nicht darunter. BRB, greifen einige Beispiel-code.
Beachten Sie, dass IE nicht der Auffassung, port-Nummern bei der Bestimmung, ob eine Anforderung ist cross-origin.
Unsere REST-Dienst nutzt unterschiedliche Anforderungen, wie verschiedene Dinge zu tun basierend auf der http-Methode. Schalten alles, um nicht einen gültigen fix. Auch nach Dark Falcon ' s Antwort, es wird nicht helfen, da ich eh noch X-Benutzernamen und andere benutzerdefinierte Header bei Anfragen.
das ändert nicht die Tatsache, dass, wenn Sie wollen, um einen cross-origin-Anfrage, müssen Sie alle Regeln, die anwendbar sind, um cross-origin-requests, um richtig zu funktionieren. cross-origin-requests in der Regel um eine OPTIONS-Anfrage. Behandeln Sie es richtig und das problem wird Weggehen. Die einzige andere Möglichkeit, dies zu lösen (ohne änderung der api) ist, um ein Skript auf dem gleichen server wie die primäre Seite für die Interaktion mit der api-Verwendung von server-side code.

InformationsquelleAutor Corey Ogburn | 2014-02-14

Schreibe einen Kommentar