0

私はWebサービスとJSONが初めてです。サーバーへのAjax呼び出しでデータを投稿するためにWebservicesとJSONを使用するasp.netでアプリケーションを開発しています。以下の関数 PostData では、次の場所でエラーが発生しています。

 data: "{" + jsonObjectName + ":" + JSON.stringify(dataToSend) + "}",     as "json" is undefined. 

ここで、dataToSend は私のデータを含むオブジェクトです
submitType は送信ボタン ID です (このページには 2 つの送信ボタンがあるため、ID で呼び出しました)

strMessagetoShow は、成功または失敗を示すテキストです。 strMethodToCall Webservice で
呼び出されるメソッドはどれですか?

function PostData(dataToSend, submitType, strMessagetoShow, strMethodToCall,        jsonObjectName) {   
 $.ajax({
    url: window.top.GetWsUrl() + "/" + strMethodToCall,
    type: "POST",
    dataType: "json",
    data: "{" + jsonObjectName + ":" + JSON.stringify(dataToSend) + "}",
    timeout: 30000,     
    contentType: "application/json; charset=utf-8",
    success: function (data) {
        return data;
    },
    error: function (result) {
        alert(result.status + ' ' + result.statusText);
    }
 });
}
4

3 に答える 3

1

JSON.stringify, であり、JSON.parse大文字です (javascript では大文字と小文字が区別されます)。

また、オブジェクトで変数を使用する場合は、次のことを行う必要があります。

var obj = {};
    obj[jsonObjectName] = JSON.stringify(dataToSend);

$.ajax({
    ....
    data: obj,
    timeout: 30000,     
    ....etc
});
于 2012-12-29T07:19:02.943 に答える
0

これを試して、役立つかどうかを確認してください:

function PostData(dataToSend, submitType, strMessagetoShow, strMethodToCall, jsonObjectName) {   
 $.ajax({
    url: window.top.GetWsUrl() + "/" + strMethodToCall,
    type: "POST",
    dataType: "json",
    data: {jsonObjectName : JSON.stringify(dataToSend)}, // or $.parseJSON(dataToSend)
    timeout: 30000,     
    contentType: "application/json; charset=utf-8",
    success: function (data) {
        return data;
    },
    error: function (result) {
        alert(result.status + ' ' + result.statusText);
    }
 });
}

ここでの変更点:

これを変更しました:

  "{" + jsonObjectName + ":" + json.stringify(dataToSend) + "}"

これに:

 {jsonObjectName : JSON.stringify(dataToSend)}
于 2012-12-29T07:24:19.477 に答える
-1

JSON ライブラリが含まれていることを確認してください。API については、https://github.com/douglascrockford/JSON-js/blob/master/json2.jsを参照してください。

JSON.stringify(value, replacer, space)
于 2012-12-29T07:20:34.157 に答える