0

私の ajax メソッドは常に ServiceFailed を返しますが、WCF サービス メソッドは正常に返されます (ブレークポイントを設定して確認しました)。コードを以下に示します。何が間違っている可能性がありますか?

function LoginToServer(name, password) {
    server = "localhost:1706";
    Type = "GET";
    var encodeusername = $.base64.encode(encode_utf8(name.value));
    var encodepwd = encode_utf8(password.value);
    var params = 'username=' + encodeusername + '&password=' + encodepwd + '&clientip=none';
    Url = "http://" + server + "/WCF/Test/TestService.svc/rest/Login?" + params;
    ContentType = "application/json; charset=utf-8";
    DataType = "jsonp";
    ProcessData = true;
    JsonpCallback = "alertResponse",
    method = "Login";
    CallService();
}


function CallService() {
    $.ajax({
        type: Type, //GET or POST or PUT or DELETE verb
        url: Url, // Location of the service
        data: Data, //Data sent to server
        contentType: ContentType, // content type sent to server
        dataType: DataType, //Expected data format from server
        processdata: ProcessData, //True or False
        jsonpCallback: JsonpCallback,
        success: function (msg) {//On Successfull service call
            ServiceSucceeded(msg);
        },
        error: ServiceFailed// When Service call fails
    });

WCF サービス メソッドは次のように定義されます。

    [OperationContract]
    [WebGet(ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,
            UriTemplate = "/Login?username={username}&password={password}&clientip={clientip}")]
    AuthenticationStatus SlideViewerLogin(string username, string password, string clientip);

ありがとう。

4

2 に答える 2

0

データがある場所に変数「params」を渡す必要があると思います:Data 、。データ内で何かを探していますが、関数にdataという名前の変数がありません。

于 2012-05-24T16:46:44.123 に答える
0

クロスドメインコールについては、これを確認してください

Jquery/JavaScript を使用したクロス ドメイン WCF サービスの呼び出し

WCF 呼び出しの場合

WCF サービスに問題がある可能性もあります。このブログ投稿を参照すると、直面しているエラーを特定するのに役立ちます。

WCF で REST サービスを作成し、jQuery を使用して消費する

以下のようなデータをjson形式で渡してみてください

var msg2 = { "UserName": "Denny", "Password": "abc123" };
 Data = JSON.stringify(msg2);
于 2012-05-24T16:45:59.943 に答える