質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPヘッダー

Hypertext Transfer Protocol(HTTP)の中のHTTPヘッダフィールドはHTTPの要求やレスポンスの機能しているパラメーターが含まれます。その要求もしくはレスポンスライン(メッセージの最初の一行)でメッセージヘッダを作ります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

Q&A

0回答

320閲覧

AngularとSAStrutsで通信する際にCORSのエラーが出て通信できない

akit

総合スコア12

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPヘッダー

Hypertext Transfer Protocol(HTTP)の中のHTTPヘッダフィールドはHTTPの要求やレスポンスの機能しているパラメーターが含まれます。その要求もしくはレスポンスライン(メッセージの最初の一行)でメッセージヘッダを作ります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

0グッド

0クリップ

投稿2019/02/16 14:17

編集2019/02/16 14:19

前提・実現したいこと

フロント: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側で設定が必要
  • 上記以外

あたりかと思っていますが、調べても解決しませんでした。

どのようにすれば解決できるのか教えていただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kabao

2019/02/18 13:29

SAStrutsも含めて、Seasar系プロダクトはほとんどがEOLを迎えていますので、本番サービスのような環境で使うのはやめたほうがいいです。 ヘッダが正しく追加されたかどうかは、ブラウザの開発者コンソールとかで確認してみた方がよいかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問