我正在尝试使用 firefox 加载网页的源代码,如“Javascript:权威指南”第 481 页所示。
这是我的代码:
var request = new XMLHttpRequest();
request.open("GET", "http://finance.yahoo.com/q?s=PG", false);
request.send(null);
if (request.status==200) { alert(request.responseText); }
else {alert("Error "+request.status + ": "+request.statusText);}
</script>
Firebug 显示 GET 语句,后跟 200 OK X 338ms。
看起来它是成功的(代码 200)。
但是下一个 Firebug 行说:NS_ERROR_FAILURE, request.send(null);,没有进一步的解释。
并且两个警报都没有被执行。
如果我使用帮助模式也无济于事,也不能在 Chrome 中运行。我没有运行弹出窗口、cookie 或广告拦截器。
该页面使用 LWP get() 在 perl 中正常加载。
如果这是不可避免的跨域禁忌,为什么《权威指南》不这么说?
我知道 JSONP 返回 JSON。我不想要那个——我只想要一个带有原始源的字符串,就像 perl LWP get() 一样。
这对 Javascript 来说是不可能的吗?
我想我可以编写一个批处理文件,它使用 perl 来获取源并将其放入一个 JSON 文件中,该文件的名称被硬编码到 JS 中。但我想避免这种混乱。