admin管理员组

文章数量:1435859

Is it possible to download and parse a plain text file from different domain with JavaScript?

I've got this fiddle so far, but I'm stuck figuring out what I'm doing wrong.

Markup:

  <div id="clickme">Click me</div>
  <div id="result">Result: </div>

Code:

$("#clickme").click(function() {
  /* ###################################
     NOTE: im on say example/test.html but trying
     NOTE: to access different_domain_sample
   */
  var req = new XMLHttpRequest();
  var sURL = ".txt";

  req.open("GET", sURL, true);
  req.setRequestHeader("User-Agent", "blah/4.2");

  req.onreadystatechange = function() {
    if (req.readyState == 4) {
        $("#result").text("Result is: <pre>" + req.responseText + "</pre>");
    }
  };
  req.send(null);
});

Already answered, but more info on this is here Cross-origin resource sharing

Is it possible to download and parse a plain text file from different domain with JavaScript?

I've got this fiddle so far, but I'm stuck figuring out what I'm doing wrong.

Markup:

  <div id="clickme">Click me</div>
  <div id="result">Result: </div>

Code:

$("#clickme").click(function() {
  /* ###################################
     NOTE: im on say example./test.html but trying
     NOTE: to access different_domain_sample.
   */
  var req = new XMLHttpRequest();
  var sURL = "http://www.google./robots.txt";

  req.open("GET", sURL, true);
  req.setRequestHeader("User-Agent", "blah/4.2");

  req.onreadystatechange = function() {
    if (req.readyState == 4) {
        $("#result").text("Result is: <pre>" + req.responseText + "</pre>");
    }
  };
  req.send(null);
});

Already answered, but more info on this is here Cross-origin resource sharing

Share Improve this question edited Apr 21, 2012 at 8:52 lzdt asked Apr 21, 2012 at 8:30 lzdtlzdt 4991 gold badge6 silver badges18 bronze badges 3
  • 2 You can't send requests across domains via JavaScript. – Blender Commented Apr 21, 2012 at 8:35
  • @Blender Is this same limitation as in java's applets? Can I "sign" the code or ask for user whether he trusts the code, so its possible to access files across domains or something like that? – lzdt Commented Apr 21, 2012 at 8:37
  • @lzdt: Yes, that would be possible. Or do it like ninja suggests, by hosting a proxy service on the same domain. – Niklas B. Commented Apr 21, 2012 at 8:37
Add a ment  | 

2 Answers 2

Reset to default 4

It's because of browsers have implemented a feature called cross-site-scripting-prevention. You could for example do the ajax request on a php file on the same server and in that query the target page using curl.

There are three ways to do this:

  1. With the help of a non-browser-based proxy served from your domain which will fetch the data on your behalf. You can also use a plugin which can bypass the same-origin policy.
  2. Use JSONP or another similarly hackish way around the same-origin policy. This would require the web server to support JSONP.
  3. Disable the cross-origin policy (definitely not remended; very dangerous)

本文标签: javascriptIs it possible to load and parse file on remote serverStack Overflow