0

ASP.NET webmethodへの jQuery ajax 呼び出しでパラメーターの受け渡しに問題があり、一日中バグが発生しています。

私はそれがどのように行われているかの解決策を見てきましたが、それでもうまくいきません。

ここにいくつかのコードがあります:

function GetString() {

    var name = "yan";
    var fam = "key";
    alert(name + " " + fam);

    $.ajax
({
    type: "GET",
    url: "'Services/MyService.asmx/returnString",
    dataType: "json",
    //data: "{ 'fname' : '" + name + "' , 'lname' : '" + fam + "'}",
    //data: "{ 'fname' : 'name' , 'lname' : 'fam'}",
    //data: '{"fname":"Chris","lname":"Brandsma"}',
    data: "{'fname':'Chris','lname':'Brandsma'}",
    contentType: "application/json; charset=utf-8",
    error: function (jqXHR, textStatus, errorThrown)   //what to do if fails
    {
        alert('bad, ' + errorThrown + ", " + jqXHR.responseText + ", " + textStatus);
    },
    success: function (data)           //what to do if succedded
    {
        alert(data.d);
    }
});

}

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string returnString(string fname, string lname)
{
    return ("my name is " + fname + " " + lname);
}

そして、それは私が得るエラーです: エラー: 応答テキスト:

私はそれを達成するためにいくつかの方法を試しましたが、どれもうまくいきませんでした。誰かが間違いを指摘したり、別の解決策を提案したりできますか???

前もって感謝します

4

2 に答える 2

3

過去 24 時間試行錯誤した後、ついに成功しました :) 方法は次のとおりです。

コードビハインド:

[WebMethod]
[ScriptMethod(UseHttpGet=false)]
public string returnString2(string fname, string lname)
{
    return "{ \"FirstName\" : "\" + fname + "\" , \"LastName\" : "\" + lname + "\"}";
}

注意してください(UseHttpGet=false)

Jクエリ:

function GetString2() {

    var name = "yan";
    var fam = "key";
    alert(name + " " + fam);

    $.ajax
({
    type: "POST",
    url: 'Services/MyService.asmx/returnString2',
    dataType: "json",
    data: JSON.stringify({ fname: "yan" , lname: "key" }),
    contentType: "application/json; charset=utf-8",
    error: function (jqXHR, textStatus, errorThrown)   //what to do if fails
    {
        alert('bad, ' + errorThrown + ", " + jqXHR.responseText + ", " + textStatus);
    },
    success: function (data)           //what to do if succedded
    {
        alert(data.d);
        var person = $.parseJSON(data.d);
        alert(person.FirstName);
    }
});

}

type:"Post"そのdata行がどのように変更されているかに注意してください

助けてくれたみんなに感謝します。少しだけ貢献してくれました:)

于 2013-01-28T10:03:48.067 に答える
1

コードの変更で

    type: "GET",

    type: "POST",
于 2013-01-28T09:38:57.787 に答える