简体   繁体   中英

How can I make this cross-domain ajax call to an API

I have followed a tutorial (and read many others) on making cross-domain requests, but I can't get it to work. I keep getting the same error:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

This is the code I'm working with. I'm trying to hit the coinbase API.

// Create the XHR object.
  function createCORSRequest(method, url) {
    var xhr = new XMLHttpRequest();
    if ("withCredentials" in xhr) {
      // XHR for Chrome/Firefox/Opera/Safari.
      xhr.open(method, url, true);
    } else if (typeof XDomainRequest != "undefined") {
      // XDomainRequest for IE.                                                                                                                                                         xhr = new XDomainRequest();
      xhr.open(method, url);                                                                                                                                                          } else {
      // CORS not supported.                                                                                                                                                            xhr = null;
    }                                                                                                                                                                                 return xhr;
  }

// Make the actual CORS request.
  function makeCorsRequest() {                                                                                                                                                        // All HTML5 Rocks properties support CORS.
    var url = 'https://www.coinbase.com/api/v1/prices/historical';
    var xhr = createCORSRequest('GET', url);                                                                                                                                          if (!xhr) {
      alert('CORS not supported');                                                                                                                                                      return;
    }                                                                                                                                                                                                                                                                                                                                                                   // Response handlers.
    xhr.onload = function() {
      var text = xhr.responseText;                                                                                                                                                      var title = getTitle(text);
      alert('Response from CORS request to ' + url + ': ' + title);
    };

    xhr.onerror = function() {
      alert('Woops, there was an error making the request.');
    };

    xhr.send();
  }

  makeCorsRequest();

By default, you're not allowed to make cross-domain AJAX calls. If the target defines a CORS policy, then this rule may be relaxed. Details .

If you control the target, you should be able to get this to work by adding a CORS policy.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM