我有以下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作为答复。
如何更改此设置以允许我将实际数据发送到服务器端?
最佳答案
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
});
关于c# - 当方法具有参数时,Ajax回调失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14632932/