aspx网站:
<script type="text/javascript">
function AjaxTest() {
var codeVal = "hello world";
if (codeVal) {
$.ajax({
type: "POST",
url: "CheckAge",
data: { code: codeVal },
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
cache: false,
success: function (result) {
alert("in ajax success");
},
error: function () {
alert("error");
}
});
}
}
它的双重检查是调用了javascript函数。
控制器:
[HttpPost]
public JsonResult CheckAge(String code)
{
return Json("abc");
}
它总是在ajax - error - 函数中结束。 无论如何都不会调用Controller函数。为什么? 为什么我总是出错? 有什么问题?
答案 0 :(得分:2)
检查您要发布到的网址。您似乎缺少控制器部件。例如。它应该是/{controller}/{action}
。
如果该脚本直接在视图中(即不在外部javascript文件中),您可以使用以下内容:
$.ajax({
type: "POST",
url: <%= Url.Action("CheckAge", "ControllerName") %>,
data: { code: codeVal },
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
cache: false,
success: function (result) {
alert("in ajax success");
},
error: function () {
alert("error");
}
});
另外,我发现使用firebug调试ajax的东西是有利的。您可以在javascript中设置断点,还可以查看所有请求和响应。
HTHS,
查尔斯
编辑:尝试简化一些事情......例如
$.post('<%= Url.Action("CheckAge", "ControllerName") %>',
{ code: codeVal },
function (data) {
alert("in ajax success");
},
"json");