qq_35501877 2019-04-27 16:02 采纳率: 100%
浏览 1448
已结题

vue.js关于跨域问题,请教各位

我在本地运行vue.js前端请求接口,get,post,put,delete这四种请求都可以访问
,但是把vue项目打包发布,用nginx做代理转发,再访问vue.js项目,put和delete请求都不可以访问。错误:has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

  • 写回答

2条回答

  • x8671314 2019-04-27 16:17
    关注

    put和delete请求会在请求之前先发送一个options请求导致失败。大概是因为options没有被反向代理。解决方法如下:在接口反向代理的配置中对options单独处理直接返回成功。
    location / {
    if ($request_method = 'OPTIONS') {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;
    return 200;
    }
    proxy_pass http://;
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝