使用没有Jquery的Javascript获取远程文本文件

时间:2013-05-08 13:42:15

标签: javascript ajax xmlhttprequest

我希望在Javascript中获取文本文件的内容以便解析它。 我知道如何使用Jquery,我曾经用JSONP调用ajax函数,但是,这次我想在没有任何框架的情况下这样做。

我做了很多尝试的代码,但没有成功。这是最后一个版本:

var url = 'https://url.com/videosList.txt';

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = process;
xhr.open("GET", url, true);
xhr.send();

function process()
{
  if (xhr.readyState == 4) {
    console.log(xhr.responseText);
  }
}

代码似乎没问题,但我的浏览器(铬)让我回复:

> XMLHttpRequest cannot load
> https://url.com/videosList.txt. Origin
> http://localhost:8888 is not allowed by Access-Control-Allow-Origin.

1 个答案:

答案 0 :(得分:1)

默认安全设置下不允许跨站点脚本。如果请求的URL位于页面所在的同一域中,您的代码将起作用。

如果您可以控制远程服务器,则可以在响应中添加标题:

Access-Control-Allow-Origin: *

但XMLHttpRequest在不同的浏览器(主要是IE)之间是(或曾经是)不同的。所以这意味着你需要一个“库垫片”,在不一致的情况下统一你的代码。如果可能的话我会坚持使用jQuery:)

以下是一些参考资料:

http://www.cypressnorth.com/blog/programming/cross-domain-ajax-request-with-json-response-for-iefirefoxchrome-safari-jquery/

快乐的小道。