【问题标题】:XMLHttpRequest's open() fails in ChromeXMLHttpRequest open() 在 Chrome 中失败
【发布时间】:2012-08-11 15:53:37
【问题描述】:

我正在尝试修补一些在 Chrome 中不起作用的 AJAX。这不是我的脚本,我宁愿不把整个东西都转换成 jQuery。

xmlhttp.open("GET", query, true);
xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4) {
        console.log(xmlhttp.responseText);
    }
}
xmlhttp.send();

这实际上在使用 Internet Explorer 时会在日志中输出一些内容,但是在 (Ch)rome 中我得到一个空字符串,因为 JS 调试器告诉我 GET 失败。目标 URL 是正确的,因为它可以在 IE 中运行,但它是某种 ASP.NET 脚本,我不太熟悉它的内部工作原理(我在这里做 HTML、CSS 和 JavaScript)。

为什么允许 IE 从目标中检索信息,但不允许 Chrome?当使用 Chrome 时,xmlhttpXMLHttpRequest,而 IE 会得到某种 ActiveXObject

编辑。我找到了一些可能的解决方案hereResponse.Close(),没有异步或指定/空数据类型。不过是 jQuery。

编辑#2。 What Chrome is saying about my headers.

【问题讨论】:

  • 如果要调试,建议你看http级别的,使用Wireshark之​​类的。
  • 您从失败的 GET 中得到什么错误?使用 status/statusText 属性来检查这个
  • 服务器是否发送正确的标头Content-Type: text/plain
  • @codebox xmlhttp.status = 0, xmlhttp.statusText = '' 根据控制台日志。
  • @Andreas 我对此表示怀疑。查询是?id=...,即它与执行 AJAX 的页面相同,但在底部附加了分隔符和 HTML,它被拆分以检索应该由 innerHTML 在元素上显示的新内容。我猜它使用 HTML 使用的任何标题。

标签: javascript asp.net ajax asp.net-ajax


【解决方案1】:

您可以通过在 Chrome 的地址栏中输入网址来查看网址吗?可能只是您的浏览器配置导致 Chrome 无法看到服务器。

另一种可能性是您被Same Origin Policy 所困扰-您访问的网址与页面在同一个域上吗?

【讨论】:

  • 是的,我可以。这是一个空白页面,但是在查看源代码时,所有的 HTML 都在那里。像这样:<real page HTML>AJAXDELIMITER<new page HTML>。 Firefox 使用view-source 打开它,但显示内容类型为text/html
  • 发送的 Content-Type 标头是什么? (您可以在 Chrome 开发者工具中查看)
  • 再说一次,我该怎么做?我无法访问这里的项目,但我应该能够看到 stackoverflow.com 发送的标题,是吗?关于同源政策:是的。它与实际包含的 JS 文件相同。我的代码中的query 变量包含?id=42&ajaxcall=1 形式的字符串。在浏览器中访问它会给我整个页面的完整 HTML 代码,然后是 AJAX 脚本应该输出的 HTML。非常糟糕的设计,因为 AJAX 请求比整个页面都重。
  • 在 Chrome 中打开开发工具(工具 > 开发者工具)点击网络选项卡,发送 AJAX 请求(您应该会在网络选项卡中看到一个新行)并检查类型列中的值
  • 啊哈,那里。我检查了我们的演示(应该有相同的 AJAX 实现),是的,它是text/htmlScreenshot.
【解决方案2】:

好的,我已经解决了。 Chrome 显然不喜欢在请求页面的末尾有Response.Close()。更改为 Response.End() 修复了它。感谢您的帮助!

我还用一行 jQuery 替换了那个 JavaScript。

【讨论】:

    猜你喜欢
    • 2016-04-15
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    相关资源
    最近更新 更多