2016-12-22 3 views
0

インターネットで一日中検索しました。これは私がのweb.xmlここCORSフィルターで問題が発生しました

<filter> 
    <filter-name>cors</filter-name> 
    <filter-class>org.sampe.service.context.filter.CorsFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>cors</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

にCORSフィルター(CorsFilter.java)は

@Component 
public class CorsFilter implements Filter { 

    @Override 
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 
     throws IOException, ServletException { 
     HttpServletResponse response = (HttpServletResponse) res; 
     response.setHeader("Access-Control-Allow-Origin", "*"); 
     response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE"); 
     response.setHeader("Access-Control-Max-Age", "3600"); 
     response.setHeader("Access-Control-Allow-Headers", 
      "Origin, X-Requested-With, Content-Type, Accept, Authorization"); 
     chain.doFilter(req, res); 
    } 

    @Override 
    public void init(FilterConfig filterConfig) {} 

    @Override 
    public void destroy() {} 
} 

それは郵便配達で正常に動作しているが含まれているものです。しかし、私は問題をAjaxの呼び出しや角度2を使用している。私もこれらの質問を見てきました。 solved stackoverflow answer私は何が間違っています。

+0

ajax/angular2コールを使用するとどのようなエラーが表示されますか? –

+0

これはAngularとは関係ありません – Milad

+0

コンソールの「プリフライトの応答が無効です(リダイレクト)」というエラーが表示される – user3127109

答えて

1

これは角度とは関係ありません。 あなたの春のAPIはクロスオリジン要求を許可していません。

クロスオリジンからAPIにアクセスできるようにするには、残りのコントローラに注釈を設定します。

私が言っていることは、クロスコントローラにアクセスできるように、@CrossOriginで残りのコントローラに注釈を付けることができるということです。

これが役に立ちます。あなたは、次のアノテーションを使用してCORSフィルターに注釈を付ける必要があり 賞賛

+0

CORSの問題はほとんどの場合、サーバーによって発生します。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORSをご覧ください。 –

1


@Order(Ordered.HIGHEST_PRECEDENCE)
@Orderは注釈付きコンポーネントのソート順を定義します。デフォルト値はOrdered.LOWEST_PRECEDENCEであり、最も低い優先度を示します(他の指定された注文値を失う)。

関連する問題