【发布时间】:2018-01-05 11:57:55
【问题描述】:
我一整天都在尝试将 Spring Boot 应用程序 (REST API) 部署到 Google App Engine,但我一直在尝试通过 CORS 配置。
spring 应用程序在本地工作,所以我知道 Spring CORS 配置是正确的。
但是,当我部署到 GAE 时出现以下错误。
无法加载https://avian-infusion-156317.appspot.com/api/login:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:8100' 因此不允许访问。
以下是来自 Chrome 开发者工具的交换标头:
一般
Request URL:https://avian-infusion-156317.appspot.com/api/login
Request Method:OPTIONS
Status Code:200
Remote Address:172.217.26.52:443
Referrer Policy:no-referrer-when-downgrade
请求标头
:authority:avian-infusion-156317.appspot.com
:method:OPTIONS
:path:/api/login
:scheme:https
accept:*/*
accept-encoding:gzip, deflate, br
accept-language:ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
access-control-request-headers:content-type
access-control-request-method:POST
origin:http://localhost:8100
user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
响应标头
allow:GET, HEAD, POST, TRACE, OPTIONS
alt-svc:hq=":443"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000; v="41,39,38,37,35"
content-length:0
content-type:text/html
date:Wed, 03 Jan 2018 16:22:06 GMT
server:Google Frontend
status:200
x-cloud-trace-context:7369ca471aca5fe01fb46903e9af3b9f;o=1
如您所见,响应中缺少标题“Access-Control-Allow-Origin”。
我在 GAE 上的 cors 配置如下:
gsutil cors get gs://avian-infusion-156317.appspot.com
[{"maxAgeSeconds": 3600, "method": ["*"], "origin": ["*"], "responseHeader": ["content-type", "authorization"]}]
在使用 * 作为来源之前,我已经尝试了特定的 URL,即“http://localhost:8100”,但无济于事。
我错过了什么?请帮忙!
【问题讨论】:
标签: java google-app-engine spring-boot cors