这似乎应该是简单的事情,但我不能调用我的Web服务调用。这是我的代码:
var data = '{"deviceId":"e9b3f993-7ca1-442b-a5c2-001ab86e1af4","opid":202,"remarks":"fefawef"}';
$.ajax({
url: 'MyPage.aspx/MyMethod',
data: data,
type: 'GET',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
// Do stuff
},
error: function(xhr) {
alert(xhr.responseText);
}
}); // end $.ajax
乍一看,您可能会问是否更适合使用POST而不是GET。它可能会,但我正在使用GET来避免讨厌的Internet Explorer 12030错误问题。
我的网络方法的签名如下所示:
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string MyMethod(string deviceId, int opid, string remarks)
最后,我看到的错误是Invalid web service call, missing value for parameter: deviceId
。我不明白问题是什么。传递的JSON字符串文字中明确指出了deviceId
。
答案 0 :(得分:2)
由于您使用双引号作为参数,因此应使用单引号:
data = '{"deviceId":"e9b3f993-7ca1-442b-a5c2-001ab86e1af4","opid":202,"remarks":"fefawef"}'
答案 1 :(得分:2)
这可能不是唯一的问题,但您的数据 Javascript无效。根据{{3}},这应该是查询字符串或JSON对象(不是JSON字符串)。试试这个:
var data = { deviceId: "e9b3f993-7ca1-442b-a5c2-001ab86e1af4",
opid: 202,
remarks: "fefawef"
};
修改强>
这个怎么样:
var data = { d: '{"deviceId":"e9b3f993-7ca1-442b-a5c2-001ab86e1af4","opid":202,"remarks":"fefawef"}' };