最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

javascript - Is it possible to load and parse file on remote server? - Stack Overflow

matteradmin5PV0评论

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)
Post a comment

comment list (0)

  1. No comments so far