Javascript 即使已成功接收网页,XMLHttpRequest也不包含网页

Javascript 即使已成功接收网页,XMLHttpRequest也不包含网页,javascript,xmlhttprequest,Javascript,Xmlhttprequest,可能重复: 我正在制作一个个人网页,提取彩票强力球号码并显示出来。除了这一链接外,我在其他方面都取得了成功: var xmlHttp = null; xmlHttp = new XMLHttpRequest(); xmlHttp.open( "get", "http://www.powerball.com/powerball/pb_numbers.asp", false ); xmlHttp.send(null); document.body.innerHTML = xmlHttp.resp

可能重复:

我正在制作一个个人网页,提取彩票强力球号码并显示出来。除了这一链接外,我在其他方面都取得了成功:

var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "get", "http://www.powerball.com/powerball/pb_numbers.asp", false );
xmlHttp.send(null);

document.body.innerHTML = xmlHttp.responseText;
我检查了xmlHTTP.status,它是0。然而,使用livehttpheaders应用程序,我看到请求被发送了,并且在我端收到页面的地方,我得到了一个成功的HTTP/1.0 200 OK。但是,xmlHTTP对象中没有接收到任何内容。没有响应文本,只有get未初始化的状态0

编辑:我在返回标题中没有看到
访问控制允许原点:
指令。如果因为我来自不同的域而受到限制,为什么会出现这种情况?

您不能使用XHR。由于请求是以浏览器用户的身份发出的,因此需要对用户进行身份验证,以便检索机密信息(然后可以使用XHR将其复制到您自己的服务器)


请参阅以了解解决方法。

我不确定它是如何工作的,也不确定它的功能,但您似乎已经找到了上面关于它为什么不工作的答案。我建议您改用ajax,它很简单,效果也很好

下面是我使用它的一个示例:

var site =  $.ajax({
    url:        "http://google.com",
    type:       "GET",
    dataType:   "html",
    async:      false
}).responseText;
document.body.innerHTML = site;
祝你好运,

你的问题就在这里。除非该网站提供了API(即使在技术上它也不是AJAX),否则您将无法使用AJAX从该网站获取任何数据

在某种程度上,你可以通过一个应用程序实现你正在做的事情,但是你必须包含整个页面,而不仅仅是其中的相关部分

如果您需要做的是,那么您将有一些服务器端代理来完成它

一些可能对您有所帮助的工具:


跨域ajax的替代方案是:

  • 编写将使用CURL请求远程服务器的代理
  • 从ajax调用调用该代理文件

  • 这将不起作用,因为在返回头中有一个-请参阅:我没有“访问控制允许源代码:”选项。如果我受到限制,为什么它不在那里?