为什么我的api请求在本地工作但不是从服务器工作?

时间:2018-01-15 22:43:34

标签: javascript ajax xmlhttprequest

我正在构建一个小网页,从几个不同的其他API(在不同的域上)获取数据并比较数据。

当我在本地打开html文件时,一切正常,但当我上传到服务器并尝试打开它时,来自其中一个API的数据不会显示,而firefox控制台会给我这个错误消息:

  

阻止跨源请求:同源策略禁止读取远程资源。 (原因:缺少CORS标题'Access-Control-Allow-Origin'。

(其他浏览器显示不同的消息但没有显示api数据)

这是请求的代码:

function ajax(url){
return new Promise(function(resolve, reject) {
  var req = new XMLHttpRequest();
  req.open('GET', url);
  req.onload = function() {
    if (req.status == 200) {
      // Resolve the promise with the response text
      resolve(req.response);
    }
    else {
      // Otherwise reject with the status text
      // which will hopefully be a meaningful error
      reject(Error(req.statusText));
    }
  };
  // Handle network errors
  req.onerror = function() {
    reject(Error("Network Error"));
  };
  // Make the request
  req.send();
});

}

我一直在阅读xmlhttprequest和setrequestheader,但我似乎无法自己解决这个问题。

- 为什么对其余api的httprequest在本地工作但不是从服务器工作? - 我需要更改才能使其正常工作?

0 个答案:

没有答案