前提・実現したいこと
フロント:angular、バック:SAStruts で通信するwebアプリケーションを作りたいと考えています。
しかし、angular側からapi実行するとCORSに関するエラーが出てしまいます。
localhostで別々のポートでリクエスト・レスポンスをしているからと理解できました。
発生している問題・エラーメッセージ
Access to XMLHttpRequest at 'http://localhost:8080/test-project/testApi' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
試したこと
サーバ側のレスポンスでAccess-Control-Allow-Origin
で許可してやればよいということで以下のように試しました。
java
1 @Execute( validator = false ) 2 public String testApi() { 3 4 String json = "{¥"test¥":¥"test¥"}"; 5 6 // レスポンスのヘッダーにAccess-Control-Allow-Originセット 7 response.setHeader( "Access-Control-Allow-Origin", "*" ); 8 9 ResponseUtil.write( json ); 10 11 return null; 12 }
しかし、やはり同じエラーが出てしまいうまくいきませんでした。
原因としては、
- java側でそもそもレスポンスヘッダーの設定方法が間違っている
- java側は問題ないがangular側で設定が必要
- 上記以外
あたりかと思っていますが、調べても解決しませんでした。
どのようにすれば解決できるのか教えていただけますと幸いです。
あなたの回答
tips
プレビュー