jQuery Ajax JSONP-Post Aufruf von WCF-Dienst meist bekommt 400 Bad Request

Hmm naja es gibt viele hier, aber ich kann nicht scheinen, um ein JSON-Objekt, über einen web-service-Objekt. Der nächste, den ich bekommen kann zu dieser Arbeit ist in diesem Beispiel, in dem die ID entspricht der string-Variablen-Namen in den Dienst wie folgt

        var jsonData = { "ID": "hello" };
        $.ajax({
            url: "http://blah/blah.svc/GetPersonByID",
            type: "POST",
            dataType: "jsonp",  //from the server
            contentType: "application/json; charset=utf-8", //to the server
            data: jsonData,
            success: function (msg) {
                alert("success " + msg.Name);
            },
            error: function (xhr, status, error) {
                alert(xhr.status + " " + status + " " + error);
            }
        });

Wo der WCF-Dienst ist dies

    [OperationContract]
    [Description("Returns a person by ID.")]
    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json)]
    Person GetPersonByID(string ID);

    public Person GetPersonByID(string ID) {
        Person person = new Person {
            Name = ID,   //"Bob",
            FavoriteColor = "Red",
            UserID = 1 //int.Parse(ID)
        };
        return person;
    }

Zurück "Erfolg-ID=hello".

Warum funktioniert es return-ID=Hallo, anstatt nur Hallo?

Wenn ich die data: JSON.stringify({ "ID": "Hallo" }) schlägt er mit 400 bad request

Wenn ich Versuch mit einem anderen Datentyp wie int für die web-service-ID (anstelle von string -) wenn nicht.

Wenn ich versuchen, eine komplexere Datentypen es scheitert.

Irgendwelche Gedanken??? Thx

InformationsquelleAutor nuander | 2012-05-08
Schreibe einen Kommentar