私は別のページにPOSTをするWebページを持っています他のサブドメイン(subdomain1.domain.com - > subdomain2.domain.com)で、私はその状況を可能にするためにCORを設定する必要があることを理解しています。私はすべての設定をしました、そしてそれはCHROME、FIREFOXそしてIE11で動作します。
しかし、例外があります、IE11 on MY CLIENT NETWORKでは、リクエストは「オリジンがaccess-control-allow-originヘッダーに見つかりません」を返しても機能しません。
私はそれが私のクライアントネットワークで要求がSECURITYヘッダーを返さないために起こることを知ります。以下の画像はそれをよりよく説明することができます。
IE11外部のクライアントネットワーク (赤ではCORSがサーバーから戻ってきます)
IE11クライアントネットワーク内に (サーバーからのセキュリティヘッダーの返信はありません)
JAVAコードサーバーCORSフィルター (サーバーからのセキュリティヘッダーの返信はありません)
public class CorsFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse resp = (HttpServletResponse) servletResponse;
resp.addHeader("Access-Control-Allow-Origin", "https://intranet2.culturainglesa.net");
resp.addHeader("Access-Control-Allow-Credentials", "true");
resp.addHeader("Access-Control-Allow-Methods", "GET,POST");
resp.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
// Just ACCEPT and REPLY OK if OPTIONS
if (request.getMethod().equals("OPTIONS")) {
resp.setStatus(HttpServletResponse.SC_OK);
return;
}
chain.doFilter(request, servletResponse);
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}
回答:
回答№1は0この問題はサーバー側でもCORSでもなく、IE11ではAJAXを介してこの特定の状況で資格情報を送信しないでください。
インターネットゾーンサイト - >イントラネットゾーンサイト
これら2つのサブドメインを信頼ゾーンに変更すると、問題は解決しました。
これは私が解決するのに役立つ質問です:
ajaxターゲットがlocalhostの場合、IE 10および11でアクセスが拒否されました