【问题标题】:getting cors issue when hitting request to grails在向 grails 发出请求时遇到 cors 问题
【发布时间】:2019-05-08 21:20:00
【问题描述】:

我遇到了这个问题

从源“http://localhost:4200”访问“http://localhost:8082/v1/store/getstore”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:预检请求不允许重定向。

我在 application.yaml 中的配置是

grails:
cors:
    enabled: true
    allowedOrigins:
    - http://localhost:4200

在url映射中

"/v1/store/getStore"(controller: 'store', action: 'getStore')

当我直接以“http://localhost:8082/store/getstore”的形式点击请求时,它不会抛出错误,而是在放置 urlMapping 后抛出 cors 问题。

【问题讨论】:

  • 该错误消息表明服务器正在使用 3xx 重定向响应 CORS 预检 OPTIONS 请求。除非响应是 2xx 成功消息,否则预检失败。因此,您需要弄清楚服务器为何响应 OPTIONS 请求以及它尝试重定向到的 URL 以及原因 - 然后重新配置服务器以阻止该重定向,或者更改您的前端 JavaScript 代码以发出对重定向的请求网址。
  • 实际上服务器对第一个 OPTION 请求的响应为 200,但 OPTION 请求再次被 angular 击中。

标签: java angular grails cors


【解决方案1】:

在根文件夹创建 proxy.conf.json 文件并编辑以下内容:

{
    "/": {
      "target": "http://localhost:8082/",
      "secure": false
    }
  }

更改启动的包json命令:

"start": "ng serve --proxy-config proxy.conf.json --open",

使用与"/v1/store/getStore"(controller: 'store', action: 'getStore')相同的URL映射

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-08
    • 2016-02-24
    • 2015-09-16
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2020-09-09
    相关资源
    最近更新 更多