javascript - Chrome jQuery AJAX 失败,不是跨域问题

标签 javascript ajax jquery

我有一些简单的 JS/jQuery 代码来进行 AJAX 调用以获取一些 HTML 并将其推送到我页面上的一个 div 中。这在 Firefox 中运行良好,但在 Chrome 中失败。

在 Chrome 控制台中,我可以看到显示状态文本为“(失败)”的 AJAX 请求并输入“待定”。

我所做的所有搜索都与跨域问题有关。这不适合这里,我在网络服务器上运行它,有一个域名,没有附加端口号。

这是我的代码示例(您可以看到我最初尝试使用 .load(),同样的问题):

$('#brochure2012navigation a').click(function(event)
{
    event.preventDefault();

    //$('#brochurePage').load($(this).attr('href'));

    $.ajax({
        url: $(this).attr('href'),
        dataType: 'html',
        success: function(html) {
            $('#brochurePage').html(html);
        },
        error: function (xhr, ajaxOptions, thrownError) {
            console.log(xhr);
            console.log(thrownError);
        },
    });
});

在 Chrome 的控制台中,记录的 xhr 对象如下所示:

Object {readyState: 0, setRequestHeader: function, getAllResponseHeaders: function, getResponseHeader: function, overrideMimeType: function…}
abort: function (a){a=a||"abort",p&&p.abort(a),w(0,a);return this}
always: function (){i.done.apply(i,arguments).fail.apply(i,arguments);return this}
complete: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
done: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
error: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
fail: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
getAllResponseHeaders: function (){return s===2?n:null}
getResponseHeader: function (a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c}
isRejected: function (){return!!i}
isResolved: function (){return!!i}
overrideMimeType: function (a){s||(d.mimeType=a);return this}
pipe: function (a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()}
progress: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
promise: function (a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}
readyState: 0
responseText: ""
setRequestHeader: function (a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this}
state: function (){return e}
status: 0
statusCode: function (a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this}
statusText: "error"
success: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
then: function (a,b,c){i.done(a).fail(b).progress(c);return this}
__proto__: Object

抱歉,这看起来有点乱,但我认为重要的是 0 的状态。

监控日志,请求没有到达我的服务器。

我真的很困惑,如果有任何帮助,我将不胜感激!

干杯, 艾尔

最佳答案

ajax 调用可能被 AdBlock Chrome 插件阻止。

根据 adblock 黑名单上的键,某些 URL 可能会被阻止。 在 DevTools 网络选项卡上,此类请求被标记为“失败”,状态为“待定”

关于javascript - Chrome jQuery AJAX 失败,不是跨域问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14465675/

相关文章:

javascript - 如何在react.js中创建可重用的组件或部分组件?

javascript - 为什么有些编程语言允许自动包含分号?

javascript - 使用 jQuery 和 AJAX 提交回复后更新收件箱

javascript - 如何防止在头部从服务器加载我的真实图像时出现损坏的图像

jquery - 如何使用 html/jquery 为 HTML 表格中的两种重叠颜色分配不同的颜色?

javascript - canActive Angular 如何从身份验证中获取值 true false (用户是否登录)

javascript - 使用正则表达式替换 javascript 中的第 N 个单词

jquery - IE <= 8 从 AJAX 接收时删除 <form> 标签

java - 如何使用 NanoHTTPD 显示日志文件

javascript - 使用 $(this) 对象获取 DropDownList 的选定项目