我用ajax调用asmx服务方法首先我用参数ajax做了我给错误的500服务器找不到。我的参数名称与asmx服务相同,这里是带参数
的代码$(document).ready(function () {
var content = contLocation
$.ajax({
type: 'POST',
url: 'LibraryService.asmx/BooksContent',
dataType: 'json',
data: {'ContLoc':'" + content + "'},
contentType: 'application/json; charset=utf-8',
success: function (response) {
var data = response.d;
alert(data);
},
error: function (error) {
console.log(error);
}
});
});
它给了我
无法加载资源:服务器响应状态为500 (内部服务器错误) 错误 但是当我尝试没有参数时(是的,我在asmx中更改了函数,使它没有参数,我的ajax代码数据部分就像这样:
data: "{}",
在这种情况下,我的ajax警告我,因为我需要!
我也试过像这样的参数,但仍然是同样的错误。
data: "{'ContLoc':'" + Content+ "'}",
答案 0 :(得分:2)
您正在传递一个字符串
" + content + "
作为$ ajax数据参数。
它应该是一个像这样的简单JSON吗?
data: {ContLoc: content}
答案 1 :(得分:1)
尝试以这种方式传递参数:
data: {'ContLoc': content}
我希望有所帮助!
答案 2 :(得分:1)
你说:
contentType: 'application/json; charset=utf-8',
...所以你声称你正在发送JSON。
你也说过:
data: {'ContLoc':'" + content + "'},
...所以你实际上是在发送URL表格编码数据(ContLoc=%22(whatever content is)%22
)。
听起来就像你应该发送JSON一样,在这种情况下代码应如下所示:
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({ ContLoc : content }),