我正在尝试通过jQuery将JSON数据发送到我的Web服务器,而且我遇到了错误。 未捕获的TypeError:不能使用'in'运算符来搜索{“id”中的'context':45,“isRead”:true}
我正在测试的代码:
var obj = {};
obj.id = 45;
obj.isRead = true;
var data = JSON.stringify(obj);
var url = "/notification/read"
$.ajax(url, data, 'application/json', function() {
// code remove notification from the DOM
});
});
有更好或更正确的方法吗?不确定我是否在$ .ajax电话上找到了params。
更新
代码我开始工作
var obj = {
id: 45,
isRead: true
};
var json = JSON.stringify(obj);
var url = "/notification/read"
$.ajax({ url: url,
type:'POST',
contentType: 'application/json',
data: json,
success: function(data, textStatus) {
// do stuff
}
});
我的服务器期待将JSON数据作为application / json发布。所以我认为我需要所有这些变量是错误的吗?没有这些,它被发送为GET并且是application / x-www-form-urlencoded。如果没有stringify,它也无法正常工作。
答案 0 :(得分:2)
您向ajax函数传递了太多参数:http://api.jquery.com/jQuery.ajax/
此外,JSON.stringify
调用不是必需的,jQuery会为您处理。
var obj = {
'id':45,
'isRead':true
};
$.ajax({
url: "/notification/read",
data: obj,
success: function(data, textStatus){
/* code here */
}
});
答案 1 :(得分:0)
$.ajax(url, obj);
您需要将对象作为第二个参数发送
{success:success,data:data}
答案 2 :(得分:0)