我有以下javascript:
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: "POST",
url: "WebForm3.aspx/sayHello",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
success: AjaxSucceeded,
error: AjaxFailed
});
});
function AjaxSucceeded(result) {
alert(result.d);
}
function AjaxFailed(result) {
alert(result.status + ' ' + result.statusText);
}
</script>
我的代码背后有以下内容。
[WebMethod]
public static string sayHello()
{
return "hello";
}
这有效并显示你好。
现在,如果我这样做:
[WebMethod]
public static string sayHello(string args)
{
return "hello";
}
然后我收到内部服务器错误500作为回复。
如何更改此设置以允许我将实际数据发送到服务器端?
答案 0 :(得分:5)
data: {
args: "hello world"
},
此外,同时删除contentType
和dataType
另外,请添加traditional: true
。您的结果请求将是:
$.ajax({
type: "POST",
url: "WebForm3.aspx/sayHello",
traditional: true,
data: {
args: "hello world"
},
success: AjaxSucceeded,
error: AjaxFailed
});
答案 1 :(得分:1)
那么,
这有效:
$(document).ready(function() {
$.ajax({
type: "POST",
url: "WebForm3.aspx/Test",
data: '{"data":"abc"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert(response.d);
}
});
});