我是webservice和JSON的新手。我正在asp.net中开发一个应用程序,它使用Webservices和JSON在Ajax调用Server中发布数据。 在下面的函数PostData中我收到错误:
data: "{" + jsonObjectName + ":" + JSON.stringify(dataToSend) + "}", as "json" is undefined.
这里dataToSend是一个包含我的数据的对象
submitType是提交按钮ID(在页面中我有两个提交按钮,所以我通过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);
}
});
}
答案 0 :(得分:1)
它是JSON.stringify
,JSON.parse
是大写字母(javascript区分大小写)。
此外,在对象中使用变量时,您必须执行以下操作:
var obj = {};
obj[jsonObjectName] = JSON.stringify(dataToSend);
$.ajax({
....
data: obj,
timeout: 30000,
....etc
});
答案 1 :(得分: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)}
答案 2 :(得分:-1)
确保包含JSON库。有关API,请参阅https://github.com/douglascrockford/JSON-js/blob/master/json2.js。
JSON.stringify(value, replacer, space)