복붙노트

[SPRING] Cordova POST - 금지 된 요청 403. Dispatcher 서블릿에 도달하지 않음

SPRING

Cordova POST - 금지 된 요청 403. Dispatcher 서블릿에 도달하지 않음

Cordova 응용 프로그램을 개발 중입니다.

내 실제 장치 (에뮬레이터가 아닌)에서 실행중인 Cordova 앱에서 $ .ajax POST 요청을 제출하면 금지 된 상태 코드 403이 수신됩니다.

장치에서 GET 요청을 만들 수 있습니다. POST (302 발견 응답 수신)를 사용하여 로그인 할 수도 있습니다.

Chrome의 요청은 완벽하게 처리됩니다.

나는 Spring / Tomcat을 사용하고있다. 내 tomcat web.xml에 CORS 필터를 추가했으며 allow-origins *를 Cordova의 config.xml에 추가했습니다.

아래는 Chrome에서 먼저 내 기기에서 POST 요청을 할 때 생성되는 로그 추출물입니다.

Chrome 요청 :

코르도바 요청

로그는 Chrome에서 보낸 요청에있는 다음 행을 제외하고는 동일합니다.

어떤 이유로 코르도바에서 발생한 요청이 Spring의 DispatcherServlet으로 보내지지 않고 있으며, 왜 그렇게하지 않았는가에 대한 손실이 있습니다.

Weinre를 원격 디버그에 설치했으며 Chrome과 Cordova가 보낸 요청 데이터는 동일하게 보입니다 (Weinre는 대부분의 헤더 정보를 놓쳤습니다).

해결법

  1. ==============================

    1.이 문제를 해결했습니다.

    이 문제를 해결했습니다.

    이 문제는 내 tomcat web.xml (confcat의 tomcat global web.xml)에 CORS 필터가 있습니다. 거기에있을 필요가없는 코르도바 어플을 위해.

    코르도바는 "Origin : file : //"헤더를 통해 요청을 보냅니다. Tomcat에 CORS 필터가 설정된 경우 요청이 실패합니다.

    web.xml에서 CORS 필터를 제거하면 이제 POST 데이터를 사용할 수 있습니다.

  2. from https://stackoverflow.com/questions/24973290/cordova-post-request-forbidden-403-not-reaching-dispatcher-servlet by cc-by-sa and MIT license