进行axios.get调用时出现CORS错误

进行axios.get调用时出现CORS错误,cors,cross-domain,redux,Cors,Cross Domain,Redux,我正在使用axios在我的redux action.js文件中进行axios.get调用。 在我的组件中,此操作在表单提交时执行 我在控制台中获得状态200,但没有得到任何回复。 我得到以下错误: 请求的资源上不存在“Access Control Allow Origin”头。因此,不允许访问源“http:\\\\localhost:3000”。 有人也遇到过这样的错误吗?请分享如何解决此问题。问题不在于axios。问题出在服务器上。提供数据时,必须在发送数据之前添加以下标题 访问控制允许原点

我正在使用axios在我的redux action.js文件中进行axios.get调用。 在我的组件中,此操作在表单提交时执行

我在控制台中获得状态
200
,但没有得到任何回复。 我得到以下错误:

请求的资源上不存在“Access Control Allow Origin”头。因此,不允许访问源“http:\\\\localhost:3000”。


有人也遇到过这样的错误吗?请分享如何解决此问题。

问题不在于axios。问题出在服务器上。提供数据时,必须在发送数据之前添加以下标题

访问控制允许原点 必须设置为 *

访问控制允许标题 必须设置为
来源,X-request-With,内容类型,Accept

我在解决这个问题时遇到的第一个困惑是理解飞行前请求的含义。所以我将从这里开始

当请求不满足以下条件时,浏览器会发送飞行前请求:

  • HTTP方法与下列方法之一匹配(区分大小写):
    • 得到
    • 职位
  • HTTP头匹配(不区分大小写):
    • 接受
    • 接受语言
    • 内容语言
    • 最后事件ID
    • 内容类型,但仅当值为以下值之一时:
      • 应用程序/x-www-form-urlencoded
      • 多部分/表单数据
      • 文本/纯文本
  • 飞行前请求是通过选项方法发出的,该方法包括三个额外的头,如果服务器未配置为CORS,则服务器可能不需要这些头。它们是:

    • 访问控制允许标头
    • 访问控制允许源
    • 访问控制允许方法
    如果服务器没有为CORS配置,它只会响应一个空的头,头上有HTTP状态代码200。为CORS配置服务器后,应将上面列出的头作为CORS支持的头包含在内

    这将清除错误并允许您与服务器通信

    注意:虽然您的服务器可以处理您为JWT身份验证创建的自定义头(在我的案例中为
    授权
    ),但它很可能不会配置为CORS请求。如果您有权访问服务器,只需了解如何为该服务器配置CORS即可

    有关CORS的更多信息。请参见

    这对我很有用:

    axios.create({
        baseURL: "http://localhost:8088"
      }).get('/myapp/user/list')
        .then(function(response) {
          callback && callback(response);
          debugger;
        })
    

    请试试这个。。它适用于我的案例{crossdomain:true}

    axios.get(`http://localhost:4000/api`,{ crossdomain: true }).then((result)=>{
            console.log("result",result.data.result.[0].name);
          }).catch((error)=>{
            console.log("Error hey",error);
          });
    

    @提摩斯塔——那我怎么解决这个问题呢?我在代码中添加了以下内容,但仍然得到了相同的错误--var config={headers:{'Access-Control-Allow-Methods':'GET,PUT,PATCH,POST,DELETE','Access-Control-Allow-Origin':'*','Content-Type':'application/json'};const request=axios.get(url,config)@TimoSta——感谢您的链接,为了解决这个问题,我必须在我的ServerExpress应用程序中安装CORS模块,并将其用作中间件。我只是想知道我是否可以在客户端请求中做些什么来克服这个问题。如果有这样的方法,请告诉我。因为当我使用邮递员或任何浏览器提出请求时,它不会导致任何此类问题。所以,也许我也可以在客户端请求中添加一些东西来解决这个问题。只是好奇。我怎么能为API调用做到这一点呢?我已经看到,这是在一个环境中运行良好的完全相同的代码上实现的,而不是在不同的环境中。这两种情况下的服务器完全相同。前端是铬合金的CORS开关打开。我确信服务器端正确处理了CORs。所以我被难住了。有些东西关闭了。但是在使用axios时,我该怎么做呢?