xmlhttprequest - 异常 101 错误

发布于 2024-12-05 04:43:24 字数 568 浏览 2 评论 0原文

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”,没有其他解决方案。

我怎样才能做到这一点?为什么我收到“异常 101”错误。


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

requrl_1 = "http://www.example.com/index.php";
requrl_2 = "http://www.example.com/redirect.php";

when I request "requrl_1", there is no problem. I'm getting response. "index.php" is not a redirector page.

but requrl_2 is a redirector page, that is redirecting to another website(for example: http://www.cnn.com).

so when I request with XMLHttpRequest, I'm getting exception 101 error.

I must request "redirect.php", there isn't another solution.

How can I do that? Why am I getting "exception 101" error.


I'm coding a Greasemonkey userscript script for google chrome.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

呆头 2024-12-12 04:43:24

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

如果您不想安装 Tampermonkey,请使用 Chrome 用户脚本现在支持通过 GM_xmlhttpRequest() 进行跨站点请求。

所以,你可以使用:

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

It's best to just install Tampermonkey and use it to run your script. Then you can code with GM_xmlhttpRequest()Doc -- which has cross-domain support. And scripts get enhanced capabilities to match what Greasemonkey can do on Firefox.

If you don't want to install Tampermonkey, Chrome userscripts now support cross-site requests via GM_xmlhttpRequest().

So, you could use:

GM_xmlhttpRequest ( {
    method:     "GET",
    url:        "http://www.example.com/redirect.php",
    onload:     function (response) {
                    //-- Do your business here.
                }
} );
清风挽心 2024-12-12 04:43:24

来自 XMLHttpRequest 规范

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

基本上,重定向会导致同源策略被触发。这是引发错误的原因。该请求应该通过代理而不是重定向来提供。

From the XMLHttpRequest Spec

If something goes wrong (infinite loop, network errors) the state must
be set to loaded and all members (excluding readyState) of the object
must be set to their initial value. Also, if async is set to false, a
NETWORK_ERR exception must be raised. In addition, all registered
event listeners must be removed.

Basically the redirect is causing the same origin policy to be fired. Which is firing the error. The request should be served with a proxy and not a redirect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文