如何对API进行跨域ajax调用

时间:2014-05-04 16:50:54

标签: javascript ajax xmlhttprequest cors

我在制作跨域请求时遵循了一个教程(并阅读了许多其他内容),但我无法使其发挥作用。我一直得到同样的错误:

否'访问控制 - 允许 - 来源'标头出现在请求的资源上。

这是我正在使用的代码。我试图点击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();

1 个答案:

答案 0 :(得分:0)

默认情况下,您不允许进行跨域AJAX调用。如果目标定义了CORS策略,则可以放宽此规则。 Details

如果您控制目标,您应该可以通过添加CORS策略来实现目标。