javascript - curl 和 ajax 的区别

标签 javascript ajax curl

我正在尝试与 React 应用程序中的 API ( http://labs.skanetrafiken.se/api.asp) 进行通信。

但是我一直被屏蔽

var url = 'http://www.labs.skanetrafiken.se/v2.2/neareststation.asp?x=55.720504899999995&y=13.1927948'
$.ajax({
  type: "GET",
  url: url,
  async: true,
  dataType : 'xml',
  crossDomain:true,
  success: function(data, status, xhr) {
    console.log(data);
  }
});

收到响应:

XMLHttpRequest cannot load http://www.labs.skanetrafiken.se/v2.2/neareststation.asp?latitude=55.720504899999995&longitude=13.1927948.
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://stackoverflow.com' is therefore not allowed access.

但是当我像这样从我的终端尝试相同的请求时

curl "http://www.labs.skanetrafiken.se/v2.2/neareststation.asp?x=55.720504899999995&y=13.1927948&R=1000"

我得到了我正在寻找的响应。我怎样才能避免这个?最好不要设置一个服务器,其唯一目的是 curl API。

最佳答案

您不能从 Javascript 执行此请求,因为请求的资源上不存在“Access-Control-Allow-Origin” header 。

因此资源 http://www.labs.skanetrafiken.se 不允许跨域请求。虽然此 Access-Control-Allow-Origin 属性不会设置为 *http:/的 server 上的其他允许域/www.labs.skanetrafiken.se,您不能对 API 进行跨域请求。

CORS 的描述

关于javascript - curl 和 ajax 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32842152/

相关文章:

javascript - 在 redux store 中处理 "selected"项的正确方法

javascript - 宽度覆盖对齐内容

javascript - 如何在 JavaScript 中声明可选函数参数?

GoDaddy : SSL certificate problem: unable to get local issuer certificate 的 PHP cURL SSL 问题

multithreading - 使用 HTTPS 和多线程进行 Curl

javascript - 如何创建退出按钮

从 Rails Ajax 请求获得响应后,Javascript 重做 html

javascript - jQuery 将 CSS 类添加到动态创建的元素

jquery - 使用ajax在codeigniter中加载 View

linux - 在 Internet 存档上重定向后获取 URL