JQuery-Ajax-POST an Web-API-Rückgabe 405-Methode Nicht Erlaubt

So, ich habe einen jquery-ajax-request wie dieser:

    function createLokiAccount(someurl) {
    var d = {"Jurisdiction":17}

        $.ajax({
                type: "POST",
                url:"http://myserver:111/Api/V1/Customers/CreateCustomer/",
                data: JSON.stringify(d),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(data){alert(data);},
                failure: function(errMsg) {
                    alert(errMsg);
                }
            });
    }

Diese auf meine web-api, die im Grunde ist:

    [HttpPost]
    public CreateCustomer.Response CreateCustomer(CreateCustomer.Request request)
    {
        HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");
    ...

Welches wenn ich es in Chrome gibt mir:

OPTIONS http://myserver:111/Api/V1/Customers/CreateCustomer/405 (Method Not Allowed) 
No 'Access-Control-Allow-Origin' header is present on the requested resource.      

Wenn ich die POST-Anforderung von Fiddler ' es gehört "Access-Control-Allow-Origin: *" in der Antwort-header, so wie es sein sollte, die würde vorschlagen, die API korrekt konfiguriert ist, wird noch die (von Fiddler) die jquery-Anfrage sieht wie folgt aus:

OPTIONEN http://myserver:111/Api/V1/Customers/CreateCustomer/ HTTP/1.1
Host: myserver:111
Connection: keep-alive
Access-Control-Request-Methode: POST
Herkunft: http://localhost:6500
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
Access-Control-Request-Header: accept, content-type
Akzeptieren: /
Referer: http://localhost:6500/Home/Replication?interval=1
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,en-GB;q=0.6,es-ES;q=0.4,es;q=0.2

So, warum ist mein POST-Anfrage immer verwandelte sich in eine OPTIONS-Anfrage?

Machen Sie ajax-request von localhost:6500, um die API läuft über myserver:111?
Ja, bin ich. GET-Anfragen scheinen gut zu funktionieren, es ist nur die POST, der nicht das tut was ich erwarten würde.

InformationsquelleAutor Ben Power | 2015-04-23

Schreibe einen Kommentar