Javascript 第三方API(https)的跨域请求

Javascript 第三方API(https)的跨域请求,javascript,json,cors,cross-domain,jsonp,Javascript,Json,Cors,Cross Domain,Jsonp,这是我试图从中获取JSON的url: 然而,我尝试了两种COR,但都失败了。以下是我的模板代码: 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 (t

这是我试图从中获取JSON的url:

然而,我尝试了两种COR,但都失败了。以下是我的模板代码:

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;
}

// Helper method to parse the title tag from the response.
function getTitle(text) {
  return text.match('<title>(.*)?</title>')[1];
}

// Make the actual CORS request.
function makeCorsRequest() {
  var url = 'https://shopicruit.myshopify.com/admin/orders.json?page=1&access_token=c32313df0d0ef512ca64d5b336a0d7c6';

  var xhr = createCORSRequest('GET', url);
  if (!xhr) {
    alert('CORS not supported');
    return;
  }

  // Response handlers.
  xhr.onload = function () {
    var text = xhr.responseText;
    console.log("success");
  };

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

  xhr.send();
}
makeCorsRequest();
函数createCORSRequest(方法,url){
var xhr=new XMLHttpRequest();
如果(xhr中的“带凭证”){
//XHR适用于Chrome/Firefox/Opera/Safari。
open(方法、url、true);
}else if(XDomainRequest的类型!=“未定义”){
//XDomainRequest for IE。
xhr=新的XDomainRequest();
open(方法,url);
}否则{
//不支持CORS。
xhr=null;
}
返回xhr;
}
//帮助器方法来解析响应中的标题标记。
函数getTitle(文本){
返回text.match(“(.*)”)[1];
}
//提出实际的CORS请求。
函数makeCorsRequest(){
var url='1〕https://shopicruit.myshopify.com/admin/orders.json?page=1&access_token=c32313df0d0ef512ca64d5b336a0d7c6';
var xhr=createCORSRequest('GET',url);
如果(!xhr){
警报(“不支持CORS”);
返回;
}
//响应处理程序。
xhr.onload=函数(){
var text=xhr.responseText;
控制台日志(“成功”);
};
xhr.onerror=函数(){
警报('Woops,发出请求时出错');
};
xhr.send();
}
makeCorsRequest();
它仍然给我这个错误:

XMLHttpRequest无法加载>?>页面=1&访问令牌=c32313df0d0ef512ca64d5b336a0d7c6。请求的资源上不存在“访问控制->允许来源”标题。因此,不允许访问源'null'>

我也尝试过JSONP,但它似乎不支持JSONP


任何帮助和见解都将不胜感激

发生问题的原因是XMLHTTPRequest导致CORS问题。应从浏览器对同一域进行XMLHTTPRequest调用

必须在响应中实施访问控制允许来源:标头,以便从所有域进行访问


否则,您可以将服务器用作代理。

如果站点未配置为允许跨源请求,则必须在您控制的服务器上使用服务器端代理。浏览器中的JavaScript没有任何功能。当@Pointy提到代理时,他的意思是@Pointy,你有一个指向教程的链接,我可以跟随吗?@singard上面评论中的链接怎么样?@SomeoneSpecial这个链接看起来我需要在shopify上安装一个应用程序?