0

我在这个问题上花了几个小时,我的伙伴们帮不了我。他说可能是跨站脚本问题,可能是我的系统设置导致了这个问题,因为脚本在我同事的机器上运行良好。

下面是一个简单的案例:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var req = new XMLHttpRequest();
var url = "http://www.javascriptkit.com/dhtmltutors/javascriptkit.json";
req.open("GET", url, false);
try {
    req.send();
} catch (e) {
    alert("ERROR: " + e);
}
</script>
</head>
<body>
</body>
</html>

执行代码,出现错误:

ERROR: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: chrome://firebug/content/console/commandLineExposed.js :: <TOP_LEVEL> :: line 156"  data: no]

我在本地主机、firebug 控制台和 jsFiddle 上运行了这段代码,但它们都不起作用。

我确信我的本地服务器运行良好,因为测试脚本alert("works")正在运行。

任何人都可以在这里帮助我。这是系统设置问题吗?谢谢!

4

4 回答 4

0

您可以使用代理来检索外部内容。

如上所示:http: //icant.co.uk/articles/crossdomain-ajax-with-jquery/using-proxy.html。在这里,他们从 PHP 页面发出外部请求,并在 javascript 函数调用中使用它。

这是演示页面主页的链接:http: //icant.co.uk/articles/crossdomain-ajax-with-jquery/index.html

于 2012-06-29T18:28:57.763 回答
0

XMLHttpRequest到不同的域?除非他们Access-Control-Allow-Origin在响应中设置标题,否则您将无法获得它。在 Opera(至少是 11.64 版)中,无论如何您都无法使用它。

我认为您同事的机器配置不安全。

于 2012-06-29T18:25:24.333 回答
0

XMLHttpRequest 受制于浏览器的同源策略,出于安全原因,请求只有在发送到为原始网页提供服务的同一服务器时才会成功。

于 2012-06-29T18:25:33.367 回答
0

我相信你不能像这样进行跨域调用。

于 2012-06-29T18:21:31.300 回答