2010-02-11 58 views
1

我有一个简单的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 paramater,与asynch paramater发挥各地,似乎没有这样的伎俩......

任何线索?

编辑: 更新我的jQuery的错误回调建议。达到在View页面,(而不是在简单的HTML测试页但是)

错误回调,我也得到了以下内容:

XMLHttpRequest.status为“0”

textStatus是“错误”

errorThrown是“不确定”

EDIT 2 我要指出,我请求实际上并不返回任何网址,我只是想瑟如果它存在 - 如果我在浏览器中查看URL,它会显示一个简单的文本字符串。我是否使用了错误的方法?

为什么它会在一个简单的HTML文档中正常工作,但不在ASP.NET MVC视图中? ASP是否对ajax请求做了些什么?

编辑3

因此,原来我试图访问外部站点,这是不允许的。

似乎很奇怪,我在做从简单的测试HTML文件,罚款,我只用时查看页面...

回答

2

落实error处理为好,以防万一遇到了问题。 。您的结果后

error: function(XMLHttpRequest, textStatus, errorThrown) {...}

更新

我相信问题在于你的链接做了.net表单的回发..

尝试停止事件的传播在点击处理程序(你启动的Ajax调用) 像

$('yourselector').click(function(e){ 
    e.stopPropagation(); 
    // now do your ajax call here ... 
}); 
+0

更新OP-这是一个很好的建议!错误回调现在在视图页面中调用,但不是在html测试页面 – elwyn 2010-02-11 21:54:00

+0

尝试更新的答案.. – 2010-02-11 22:12:02

+0

这并没有解决它。是否可能是这样的: http://stackoverflow.com/questions/872206/http-status-code-0-what-does-this-mean-in-ms-xmlhttp – elwyn 2010-02-11 22:18:55

0

我得到这个挺了很多,错误是相当unhelpfull。

我想它必须是您要求的网址的问题。