【发布时间】:2010-02-11 21:33:09
【问题描述】:
我有一个简单的 ajax 调用:
$.ajax({url: my_url_here,
dataType: 'text',
success: function(data, textStatus) {
if(textStatus == "success") {
alert('success');
}
else {
alert('fail');
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
//do stuff
}
});
如果我在一个简单的 HTML 文件中运行它,我会按预期收到警报。 但是,如果我在我的 ASP.NET MVC 视图之一中运行它,则 ajax 运行良好,但永远不会到达回调函数。 我尝试创建一个除了 jQuery 和这个脚本之外什么都没有的空白视图页面,以排除与我的其他 Javascript 的任何冲突。
我可以在 Firebug 中看到该请求,它按预期返回了 200 响应,但它只是没有到达回调。
我尝试添加cache: false 参数,玩弄asynch 参数,似乎没有任何效果...
有什么线索吗?
编辑: 按照建议使用错误回调更新了我的 jQuery。
在视图页面中到达错误回调(但不是在简单的 html 测试页面中),我得到以下信息:
XMLHttpRequest.status 为“0”
textStatus 为“错误”
errorThrown 是“未定义”
编辑 2 我应该注意,我请求的 URL 实际上并没有返回任何内容,我只是想看看它是否存在 - 如果我在我的浏览器中查看 URL,它会显示一个简单的文本字符串。我是否使用了错误的方法?
为什么它可以在简单的 HTML 文档中正常工作,但不能在 ASP.NET MVC 视图中工作? ASP 会对 ajax 请求做些什么吗?
编辑 3
原来我试图访问一个不允许的外部站点。
我在简单的测试 HTML 文件中做得很好,并且只在使用“查看”页面时遇到问题,这似乎很奇怪...
【问题讨论】:
标签: asp.net-mvc ajax jquery callback