【问题标题】:xmlhttprequest - exception 101 errorxmlhttprequest - 异常 101 错误
【发布时间】:2011-09-16 22:34:44
【问题描述】:
requrl_1 = "http://www.example.com/index.php";
requrl_2 = "http://www.example.com/redirect.php";

当我请求“requrl_1”时,没有问题。我得到回应。 “index.php”不是重定向页面。

requrl_2是一个重定向页面,即重定向到另一个网站(例如:http://www.cnn.com)。

所以当我使用 XMLHttpRequest 请求时,我收到 exception 101 错误。

我必须请求“redirect.php”,没有其他解决方案。

我该怎么做?为什么我收到“exception 101”错误。


我正在为 google chrome 编写 Greasemonkey 用户脚本 脚本。

【问题讨论】:

  • 这是同步请求吗?

标签: javascript google-chrome xmlhttprequest userscripts


【解决方案1】:

最好只安装Tampermonkey 并使用它来运行您的脚本。然后您可以使用GM_xmlhttpRequest()Doc 进行编码——它具有跨域支持。并且脚本获得了增强的功能,以匹配 Greasemonkey 在 Firefox 上的功能。

如果您不想安装 Tampermonkey,Chrome userscripts now support cross-site requests via GM_xmlhttpRequest()

所以,你可以使用:

GM_xmlhttpRequest ( {
    method:     "GET",
    url:        "http://www.example.com/redirect.php",
    onload:     function (response) {
                    //-- Do your business here.
                }
} );

【讨论】:

  • 谢谢,但是我不是为自己写脚本,所以所有使用脚本的用户都必须安装tampermonkey。
  • 他们应该安装 TamperMonkey。 ;) 然而,Chrome 最近添加了跨域支持。请参阅我的更新答案。
【解决方案2】:

来自XMLHttpRequest Spec

如果出现问题(无限循环、网络错误),状态必须 设置为加载和对象的所有成员(不包括readyState) 必须设置为其初始值。此外,如果 async 设置为 false,则 必须引发 NETWORK_ERR 异常。此外,所有注册 必须删除事件侦听器。

基本上,重定向会导致触发同源策略。这是触发错误。请求应该使用代理而不是重定向。

【讨论】:

    猜你喜欢
    • 2012-12-11
    • 2013-01-17
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多