【问题标题】:Jquery $.ajax callback not being called in ASP.NET MVC View Page在 ASP.NET MVC 视图页面中未调用 Jquery $.ajax 回调
【发布时间】: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


    【解决方案1】:

    也实现error 处理程序,以确保..

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

    结果后更新

    我认为问题在于您的链接会回发 .net 表单。

    尝试在您的点击处理程序(您启动 ajax 调用的地方)中停止事件的传播 像

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

    【讨论】:

    • 更新了 OP- 这是一个很好的建议!错误回调现在在 View 页面中调用,而不是在 html 测试页面中
    • 这并没有解决它。会不会是这样的:stackoverflow.com/questions/872206/…
    • URL 指向一个纯文本字符串,也许我的方法不对,也许我应该尝试弄清楚如何执行 HEAD 请求,并检查 404 错误。编辑:看起来我不能对外部域执行此操作。嗯,剧情又变厚了。
    • 您在尝试使用外部域吗?你不能这样做..你只能调用同一个域上的页面..这是一个安全问题(现有的解决方法..)..你也在本地网络上运行这个吗?还是在实时网址上?
    • 看起来这就是问题所在 - 我试图访问外部域。在本地主机上运行。我将尝试以另一种方式完成此任务。感谢您的帮助!
    【解决方案2】:

    我得到了很多这个错误是非常无益的。

    我猜你请求的网址一定有问题。

    【讨论】:

      猜你喜欢
      • 2020-11-22
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 2016-01-07
      • 2021-11-19
      • 2017-01-24
      • 2015-01-15
      • 1970-01-01
      相关资源
      最近更新 更多