私はCORSヘッダーが新しく、スプリングブートで実装しています。私は要求の本文を受け入れるPOSTサービスでCORSヘッダーを有効にしています。
実際にポストリクエストが呼び出されたときに、実際にポストリクエストが呼び出されたときは常に応答ボディ "無効なCORSリクエスト"で403が返されます。
私は以下でスプリングブートCORSヘッダー
は、私はクラスの最上部にcrossOriginを添加することによって試験及び方法の上部いるスニペット..ほぼすべての春のドキュメントおよびすべてのGoogle/stackoverflowの議論を読んだが、私は何をmissing..huhています見つけることができませんでした運がない。 POSTメソッドの場合
@CrossOrigin(origins = "https://domain/", allowCredentials = "false")
@RequestMapping(value = ApplicationConstants.URI_PATH)
class MainController {
@RequestMapping(value = '/postMethod', method = RequestMethod.POST)
Map<String, Object> postMethod(HttpServletResponse servletResponse,
@RequestBody(required = false) AccessToken requestedConsumerInfo) {...}
- プリフライトリクエストが呼び出され、結果は200が、メインPOST呼び出しが戻る403
OPTIONSとコールされている:POSTとステータスコード200
Response headers (616 B)
Access-Control-Allow-Credentials true
Access-Control-Allow-Headers content-type
Access-Control-Allow-Methods POST
Access-Control-Allow-Origin https://domain
Allow GET, HEAD, POST, PUT, DELETE, OPTIONS, PATCH
Cache-Control max-age=0, private, no-cache, …roxy-revalidate, no-transform
Connection close
Content-Length 0
Date Wed, 20 Dec 2017 17:57:14 GMT
Pragma no-cache
Server nginx/1.9.1
Strict-Transport-Security max-age=63072000; includeSubdomains;
Vary Origin,User-Agent
X-Frame-Options SAMEORIGIN
X-XSS-Protection 1; mode=block
Request headers (512 B)
Accept text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate, br
Accept-Language en-US,en;q=0.5
Access-Control-Request-Headers content-type
Access-Control-Request-Method POST
Connection keep-alive
Host domain
Origin https://domain
User-Agent Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/57.0
コール:ステータスコード403
Response headers (364 B)
Cache-Control max-age=0, private, no-cache, …roxy-revalidate, no-transform
Connection close
Content-Length 20
Date Wed, 20 Dec 2017 17:57:14 GMT
Pragma no-cache
Server nginx/1.9.1
Strict-Transport-Security max-age=63072000; includeSubdomains;
Vary User-Agent
X-Frame-Options SAMEORIGIN
X-XSS-Protection 1; mode=block
Request headers (2.507 KB)
Accept application/json, text/plain, */*
Accept-Encoding gzip, deflate, br
Accept-Language en-US,en;q=0.5
Connection keep-alive
Content-Length 102
Content-Type application/json
Cookie rxVisitor=1513720811976ARCUHEC…B4SL3K63V8|6952d9a33183e7bc|1
Host domain
Origin https://domain
Referer https://domain/home/account/register
User-Agent Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/57.0
これは動作していないので、グローバル設定だけでなく、上記のスニペットと一緒に追加してテストしましたが、運はありません。プリフライトOPTIONS要求に
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
void addCorsMappings(CorsRegistry registry) {
super.addCorsMappings(registry);
registry.addMapping(ApplicationConstants.MEMBER_URL_PATH)
.allowedOrigins("https://domain/")
.allowedMethods(HttpMethod.GET.toString(),
HttpMethod.POST.toString(), HttpMethod.PUT.toString());
}
}
}
しかし、「あなたは現在、POST応答のために戻していません。 –
実際にあなたは私に「アクセス制御許可の認証(クッキーが渡された場合)」というヒントをくれました。私はクッキーを設定し、問題を引き起こしていたコントローラでallowCredentials = "false"を設定していました。ご協力いただきありがとうございます! –