【问题标题】:XMLHttpRequst return null on ChromeXMLHttpRequest 在 Chrome 上返回 null
【发布时间】:2011-02-06 13:08:25
【问题描述】:

我有以下代码在 IE 中运行良好:

<HTML>
<BODY>
<script language="JavaScript">
text="";
req = new XMLHttpRequest();
if (req) 
{
    req.onreadystatechange = processStateChange;
    req.open("GET", "http://www.boltbait.com", true);
    req.send();
}

function processStateChange()
{
    // is the data ready for use?
    if (req.readyState == 4) {
        // process my data
        alert(req.status);
        alert(req.responseText);
   }
}
</script>
</BODY>
</HTML>

在IE中,第一个alert返回200,第二个返回网页。

但是,在 Chrome 中,第一个警报返回 0,第二个返回空字符串。

我的意图是将网页抓取到一个字符串中进行处理。如果我做的不对,我该怎么做?

谢谢。

【问题讨论】:

标签: javascript google-chrome xmlhttprequest


【解决方案1】:

一般来说,由于同源策略(出于安全原因),您无法向域外的 URL 发出请求。因此,如果您的域不是 boltbait.com,则您无法提出该请求。奇怪的是IE不给你报错...

但是,在 Chrome 中,扩展程序可以发出跨域请求(检查 this)。

【讨论】:

  • 那么,如果这是真的,我如何调用网络服务来获取位于我网页所在服务器之外的服务器上的天气数据或股票报价信息?
  • BoltBait:您需要外部站点的支持。如果他们提供此类支持,他们可能会在网站上获得相关信息。如果没有,那你就不走运了。安全措施是专门防止人们从尚未选择加入的网站获取数据。
  • 好的,看来我不能轻易完成我的计划。谢谢大家!
猜你喜欢
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
  • 2022-06-14
  • 2012-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
相关资源
最近更新 更多