Ajax가 CORS (프리 플라이트) 응답을 수락하지 않음

드루 빌 타커

CORS 요청을 처리하기 위해 simpleCORSFilter.java를 사용하고 있는데 다른 요청에는 잘 작동하지만 어떻게 든 AJAX POST 요청에는 작동하지 않습니다.

simpleCORSFilter.java

@Component
public class SimpleCORSFilter implements Filter {

    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
            throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;

        response.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE, PATCH");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Origin,X-Requested-With,X-Requested-by, Content-Type, Accept,Session");
        response.setHeader("Access-Control-Expose-Headers", "Location");
        chain.doFilter(req, res);
    }

Ajax 요청

$.ajax({
        url: url,
        dataType: 'json',
        type: 'POST',
        contentType: 'application/json; charset=UTF-8',
        crossDomain: true,
        data: JSON.stringify(data),
        success: function (data) {
                    console.log(' data : '+data);

                },
        error: function(jqXHR, textStatus, errorThrown) {
                    console.log('jqXHR:');
                    console.log(jqXHR);
                    console.log('textStatus:');
                    console.log(textStatus);
                    console.log('errorThrown:');
                    console.log(errorThrown);
                }
            });

프리 플라이트 응답을 보낸 후에는 작동이 중지됩니다 (서버를 종료하지 않지만 응답없이 거기에 매달려있는 것과 같습니다). 다른 요청을 시도하면 연결이 끊어지고 다음과 같이 응답합니다.

Caused by: java.io.IOException: An established connection was aborted by the software in your host machine

서버 로그 :

----------------------------
ID: 1
Address: http://localhost:9092/services/searchCMS/
Encoding: UTF-8
Http-Method: OPTIONS
Content-Type: 
Headers: {Accept=[*/*], accept-encoding=[gzip, deflate, sdch], accept-language=[en-US,en;q=0.8], access-control-request-headers=[content-type], access-control-request-method=[POST], connection=[keep-alive], Content-Type=[null], dnt=[1], host=[localhost:9092], origin=[http://localhost:3000], referer=[http://localhost:3000/report], user-agent=[Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36]}
--------------------------------------
2016-08-12 09:50:48.912  INFO 6408 --- [nio-9092-exec-1] o.a.c.interceptor.LoggingOutInterceptor  : Outbound Message
---------------------------
ID: 1
Response-Code: 200
Content-Type: text/xml
Headers: {Allow=[POST, GET, PUT, OPTIONS, HEAD], Date=[Fri, 12 Aug 2016 07:50:48 GMT], Content-Length=[0]}
--------------------------------------

Ajax 부분 또는 웹 서비스 부분이 정확히 어디인지 이해가 안 되나요? 많은 블로그와 stackoverflow 답변을 읽었지만이 문제를 해결할 수 없었습니다. 웹 서비스에서 프리 플라이트 응답을받은 후 오류가 발생합니다. 이유를 모르겠습니다. 전문가가 지적 할 수있는 무언가가 누락되었을 수 있습니다.

드루 빌 타커

버튼 클릭시이 Ajax 요청을 호출했지만 해당 클릭 이벤트로 돌아가는 것을 잊었습니다. 여기 에서이 솔루션을 찾았 습니다.

솔루션 1 : click () 함수에서 false를 반환 할 수 있습니다.

return false ; // for onClick funciton

해결 방법 2 : 기본값 사용을 방지 할 수 있습니다.

e.preventDefault();       //  e is the onclick event parameter

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Istio 1.5 cors가 작동하지 않음-프리 플라이트 요청에 대한 응답이 액세스 제어 검사를 통과하지 못함

분류에서Dev

엔드 포인트가 인수를받을 때 프리 플라이트 요청에 대한 CORS 응답

분류에서Dev

Ajax 응답 후 이벤트가 트리거되지 않음 Jquery

분류에서Dev

CORS 프리 플라이트 응답의 'Access-Control-Allow-Headers'헤더에 따라 'content-type'이 허용되지 않습니다.

분류에서Dev

CORS 응답 필터가 Resteasy / JAX-RS 2.0을 호출하지 않음

분류에서Dev

codeigniter 4 : 프리 플라이트 요청에 대한 응답이 액세스 제어 확인을 통과하지 못함의 CORS 문제

분류에서Dev

프리 플라이트에 대한 응답이 잘못 HTTP 상태 코드 401을 가지고 - 봄

분류에서Dev

Thunderbird가 Windows Defender로 이메일을 수신 할 때 시스템이 느리거나 응답하지 않음

분류에서Dev

iOS : 델리게이트가 응답하지 않음

분류에서Dev

iOS : 델리게이트가 응답하지 않음

분류에서Dev

프리 플라이트 요청을 수행 할 때 Access-Control-Allow-Origin CORS 헤더가 필요합니까?

분류에서Dev

Ajax 호출이 성공시 응답을 표시하지 않음

분류에서Dev

Python 서버가 응답하지 않음 (CORS 정책?)

분류에서Dev

Android Volley 라이브러리에서 PHP REST API가 응답을 반환하지 않음

분류에서Dev

Javascript 전함 게임-프롬프트가 응답하지 않음

분류에서Dev

Ajax 요청이 응답하지 않음

분류에서Dev

Ajax 데이터 응답 데이터가 경고하지 않음

분류에서Dev

phpmailer, 클라이언트가 서버에 응답하지 않음

분류에서Dev

phpmailer, 클라이언트가 서버에 응답하지 않음

분류에서Dev

AJAX $ .post가 응답 데이터를 표시하지 않음

분류에서Dev

성공적인 Django 리디렉션에서 브라우저가 응답을 렌더링하지 않음

분류에서Dev

Internet Explorer가 Ajax 응답에서 리디렉션되지 않음

분류에서Dev

AJAX로 POST를 수행하면 "프리 플라이트에 대한 응답이 잘못되었습니다 (리디렉션)"가 반환됩니다.

분류에서Dev

많은 메모리를 사용할 때 Linux가 응답하지 않는 이유 (OOM을 트리거 할 수 없음)

분류에서Dev

OAuth의 CORS : 프리 플라이트 요청에 대한 응답이 액세스 제어 검사를 통과하지 못함

분류에서Dev

출처의 Vimeo URL이 CORS 정책에 의해 차단되었습니다. 프리 플라이트 응답의 Access-Control-Allow-Methods에서 메서드 PATCH를 허용하지 않습니다.

분류에서Dev

CORS 프리 플라이트 OPTIONS 요청이있는 Ajax 위조 방지 POST (302 리디렉션)

분류에서Dev

Asp.net 웹 API를 사용하는 AngularJS : XMLHttpRequest를 반환하는 $ http 게시물을로드 할 수 없음 : 프리 플라이트에 대한 응답에 잘못된 HTTP 상태 코드 405가 있습니다.

분류에서Dev

PHP while 루프에서 Ajax 응답이 업데이트되지 않음

Related 관련 기사

  1. 1

    Istio 1.5 cors가 작동하지 않음-프리 플라이트 요청에 대한 응답이 액세스 제어 검사를 통과하지 못함

  2. 2

    엔드 포인트가 인수를받을 때 프리 플라이트 요청에 대한 CORS 응답

  3. 3

    Ajax 응답 후 이벤트가 트리거되지 않음 Jquery

  4. 4

    CORS 프리 플라이트 응답의 'Access-Control-Allow-Headers'헤더에 따라 'content-type'이 허용되지 않습니다.

  5. 5

    CORS 응답 필터가 Resteasy / JAX-RS 2.0을 호출하지 않음

  6. 6

    codeigniter 4 : 프리 플라이트 요청에 대한 응답이 액세스 제어 확인을 통과하지 못함의 CORS 문제

  7. 7

    프리 플라이트에 대한 응답이 잘못 HTTP 상태 코드 401을 가지고 - 봄

  8. 8

    Thunderbird가 Windows Defender로 이메일을 수신 할 때 시스템이 느리거나 응답하지 않음

  9. 9

    iOS : 델리게이트가 응답하지 않음

  10. 10

    iOS : 델리게이트가 응답하지 않음

  11. 11

    프리 플라이트 요청을 수행 할 때 Access-Control-Allow-Origin CORS 헤더가 필요합니까?

  12. 12

    Ajax 호출이 성공시 응답을 표시하지 않음

  13. 13

    Python 서버가 응답하지 않음 (CORS 정책?)

  14. 14

    Android Volley 라이브러리에서 PHP REST API가 응답을 반환하지 않음

  15. 15

    Javascript 전함 게임-프롬프트가 응답하지 않음

  16. 16

    Ajax 요청이 응답하지 않음

  17. 17

    Ajax 데이터 응답 데이터가 경고하지 않음

  18. 18

    phpmailer, 클라이언트가 서버에 응답하지 않음

  19. 19

    phpmailer, 클라이언트가 서버에 응답하지 않음

  20. 20

    AJAX $ .post가 응답 데이터를 표시하지 않음

  21. 21

    성공적인 Django 리디렉션에서 브라우저가 응답을 렌더링하지 않음

  22. 22

    Internet Explorer가 Ajax 응답에서 리디렉션되지 않음

  23. 23

    AJAX로 POST를 수행하면 "프리 플라이트에 대한 응답이 잘못되었습니다 (리디렉션)"가 반환됩니다.

  24. 24

    많은 메모리를 사용할 때 Linux가 응답하지 않는 이유 (OOM을 트리거 할 수 없음)

  25. 25

    OAuth의 CORS : 프리 플라이트 요청에 대한 응답이 액세스 제어 검사를 통과하지 못함

  26. 26

    출처의 Vimeo URL이 CORS 정책에 의해 차단되었습니다. 프리 플라이트 응답의 Access-Control-Allow-Methods에서 메서드 PATCH를 허용하지 않습니다.

  27. 27

    CORS 프리 플라이트 OPTIONS 요청이있는 Ajax 위조 방지 POST (302 리디렉션)

  28. 28

    Asp.net 웹 API를 사용하는 AngularJS : XMLHttpRequest를 반환하는 $ http 게시물을로드 할 수 없음 : 프리 플라이트에 대한 응답에 잘못된 HTTP 상태 코드 405가 있습니다.

  29. 29

    PHP while 루프에서 Ajax 응답이 업데이트되지 않음

뜨겁다태그

보관