0

長い間試してみた後、(JS)Wcf Service経由で呼び出します。Jquery

サービスへの呼び出しは次のとおりです。

function CallService() {   
    var request = { userName: "aaa", password: "123" };
    var jsondata = JSON.stringify(request);   
    $.ajax({
        type: "POST", //GET or POST or PUT or DELETE verb
        url: "http://localhost:xxxx/Service1.svc/GetUser", // Location of the service
        data: jsondata, //Data sent to server
        contentType: "application/json; charset=utf-8", // content type sent to server
        dataType: "json", //Expected data format from server
        processdata: true, //True or False
        crossDomain: true, //True or False
        success: function (result) {
            alert('success');
        },
        complete: function () {
            alert('completed');
        },
        error: function (xhr, status, message) {
            alert('error with status - ' + xhr.status);
        }
    });  
}

サービス中の GetUser 関数に BreakPoint を配置し、関数 CallService を呼び出すと、Service の BreakPoint に移動します (つまり、機能します)。

サービス関数はうまく機能し、正しいデータを返しますが、Jquery にはステータス 0の Error 関数が返されます。

さらに、コンソールに赤いエラーが表示されます:(一般的にエラーとして認識されません)

POST http://localhost:xxx/Service1.svc/GetUser  

何が問題なのですか?

4

2 に答える 2

1

クロスドメイン リクエストを行っている可能性があります。異なるポートを持つ同じホスト名は、異なるドメインと見なされることに注意してください。例:http://localhost:20http://localhost:40は異なるドメインと見なされます。

あなたの場合、ブラウザが CORSをサポートしているため、別のドメインへのリクエストがまだ送信されている可能性があります。そのため、サーバー側でデバッグすると機能することがわかりますが、ブラウザーがサーバーから応答を受信すると、応答からAccess-Control-Allow-Originヘッダーが欠落しているか、Access-Control-Allow-Originヘッダーはあるが値が異なるため、応答が破棄されてエラーが発生しますドメイン。

于 2013-07-04T12:48:55.107 に答える
0

私の問題は、User私が持っていたオブジェクトにあることでしたDateTime

私がそれを回したとき、Stringそれはうまくいきました。

于 2013-07-07T10:02:37.727 に答える