【问题标题】:How can I make a cross-domain request from my reactjs component?如何从我的 reactjs 组件发出跨域请求?
【发布时间】:2017-11-04 06:46:00
【问题描述】:

我有一个 reactjs 组件,我想在其中一种方法中发出 ajax 请求:

$.ajax({
         type: 'GET',
         crossDomain: true,
         url:'http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b1b15e88fa797225412429c1c50c122a1',
         success: (res) => {},
         error: (fail) => {}
      })

当我加载组件时,请求加载失败并出现错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:8080' 因此不允许访问。

是否可以解决此问题,或者我应该采用不同的方法?

【问题讨论】:

  • httphttps 但看起来该站点不支持 SSL 直到该站点,它应该允许跨域并为 api 事物启用 SSL
  • 客户端无法修复...端服务器需要开启CORS
  • 将 api 端点更改为https://api.openweathermap.org/...。它应该默认启用 CORS。
  • 请求失败......

标签: jquery reactjs axios


【解决方案1】:

要进行跨域请求,您应该使用 jsonp 或反向代理

    $.ajax({
    url:"http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b1b15e88fa797225412429c1c50c122a1",
    type:"GET",
    jsonpCallback: "getStatus",
    dataType: "jsonp",

});
function getStatus(response)
{
    console.log(response);
}

【讨论】:

  • Refused to execute script from ... because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.
猜你喜欢
  • 2016-10-06
  • 1970-01-01
  • 2018-04-12
  • 2019-09-13
  • 2017-03-09
  • 2012-12-22
  • 1970-01-01
  • 2012-02-08
  • 2013-09-14
相关资源
最近更新 更多