我有一个非常基本的ajax调用来警告从服务器报告的数据
$.ajax({
type: "POST",
url: "/someform/act", //edit utl to url
data: { changed: JSON.stringify(plainData) }, //edit to include
success: function(data) {
alert(data); //data not $data
},
error: function() {
//error condition code
}
});
根据jquery网站上关于成功回调的数据字段的docs,它说返回的数据是来自服务器的数据。但是,由于某些奇怪的原因,当我提醒$data
时,我得到[object Object]
我期待看到类似的东西,因为这是服务器发回的内容
<status>0</status>
编辑:
数据也作为POST传递
答案 0 :(得分:36)
您需要在JSON.stringify(data)
中使用alert
来获取任何可读内容。
此外,$data
是一个与data
完全不同的变量名称。
答案 1 :(得分:22)
alert()
打印参数的字符串表示 - 因此,如果您传递一个对象,则会得到[object Object]
。
要检查数据,请更好地使用console.log(data)
。
答案 2 :(得分:6)
如果服务器发送JSON,则需要将dataType: 'json'
放入ajax调用。请注意您的ajax调用中存在一些错误。
$.ajax({
type: "POST",
url: "/someform/act", // NOT 'UTL',
data: {
key: value,
key2: value2
},
// or data: plaindata, // If 'plaindata' is an object.
dataType: 'json',
success: function(data) {
console.log(data); // As moonwave99 said
},
error: function() {
//error condition code
}
});
修改强>
发送数据时,您应该发送一个对象。 jQuery将处理数组以将其发送到服务器。因此,如果普通数据是一个对象,它应该是这样的
data: plainData,
答案 3 :(得分:-1)
如果是 IIS,请尝试在默认网站之外创建一个站点(例如 localhost/ajax1)。比如一个新站点ajax1,不要放在DefaultAppPool里,而是放在你的池子里,比如ajax1。试试 http://ajax1