有人可以帮我解决一下我的问题吗?
我有以下代码:
function InsertNewMeeting(tripID, contact1ID, contact2ID) {
$.ajax({
type: "POST",
url: "RetrieveSites.aspx/InsertNewMeeting",
data: "{'tripID': '" + tripID + "','contact1ID: '" + contact1ID + "','contact2ID', '" + contact2ID + "'}",
contentType: "application/json; charset=utf-8",
datatype: "json",
success: function (msg) { alert('ok'); },
error: function (msg) {alert(msg);}
});
}
这是为了调用WebService发布3个整数值。 WebService 100%工作。
但是,当我从网页调用该函数时,我得到的只是一个“Object XMLHttpRequest”错误。
我已经检查了所有传递的参数,它们100%正常。
有什么明显的我遗失或应该做的吗?
答案 0 :(得分:1)
你的字符串中的单引号到处都是。
您发送的数据将是:
{'tripID': '[tripID]','contact1ID: '[contact1ID]','contact2ID', '[contact2ID]'}
虽然看起来应该是这样的:
{'tripID': '[tripID]','contact1ID': '[contact1ID]','contact2ID': '[contact2ID]'}
答案 1 :(得分:0)
您可以这样做以将适当的json对象发送到服务器:
function InsertNewMeeting(tripID, contact1ID, contact2ID) {
var data = {'tripID': tripID, 'contact1ID': contact1ID, 'contact2ID': contact2ID};
$.ajax({
type: "POST",
url: "RetrieveSites.aspx/InsertNewMeeting",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
datatype: "json",
success: function (msg) {
alert('ok');
},
error: function (msg) {
alert(msg);
}
});
}
请注意,您需要JSON2才能在不支持JSON.stringify()的浏览器中获取JSON.stringify()。
另一件事是你需要用双引号括起属性,因为它不是JSON,如果它只是单引号。尝试通过JSONLint运行JSON字符串,看看它是否有效。