programing

Cordova 5.0 + cordova-android@4.0으로 업그레이드한 후 Ajax 요청이 실패함

bestprogram 2023. 2. 26. 16:24

Cordova 5.0 + cordova-android@4.0으로 업그레이드한 후 Ajax 요청이 실패함

최근 Cordova 5.0(및 Cordova Android 4.0)으로 업그레이드한 이후 앱이 외부 리소스에 액세스할 수 없게 되었습니다.

나는 아직 가지고 있다.<access origin="*" />이전과 같이 config.xml에 포함되지만,<uses-permission android:name="android.permission.INTERNET" />AndroidManifest.xml에서는 이전과 같이 Ajax 콜이 설명 없이 거부됩니다("textStatus" 파라미터는 "error", "errorThrown" 파라미터는 null, xhr.state()는 "rejected"를 반환합니다.

서버에 대한 요구가 없는 것을 확인했기 때문에 Android에 의해 정지되어 있는 것 같습니다만, 로그에는 그 이유에 대한 설명이 없습니다.

앱이 아닌 안드로이드 브라우저에서 해당 URL에 접속할 수 있습니다.

ajax 요구는 Backbone.js의 Backbone.sync()에 대한 호출을 통해 이루어지며, 최종적으로 jquery의 $.ajax()를 호출합니다.통화 방식에 대해 아무것도 바꾸지 않았어요업그레이드 된 코르도바.

Cordova 5.0에서 네트워크 요청에 대한 새로운 요건/설정 또는 이전 Cordova 버전과 달리 수행해야 할 사항이 있습니까?

Android 및/또는 Cordova가 요청을 거부하는 이유에 대해 더 많은 정보를 얻을 수 있는 방법을 아는 사람이 있습니까?

Android@4.0 Cordova 플랫폼까지 범인을 추적했습니다.이제 새로운 cordova-plugin-whitelist 플러그인이 필요합니다.

다음과 같이 설치할 수 있습니다.

cordova plugin add cordova-plugin-whitelist

또는 추가함으로써

<plugin name="cordova-plugin-whitelist" spec="1" />

config.xml에 접속한 후 다음 명령어를 사용하여 설정합니다.

<allow-navigation href="*" />

옛것을 대신해서<access origin="*" />태그를 붙입니다.

이런 문제가 발생했을 때 로그에서 "화이트리스트 거부" 오류 메시지가 더 이상 표시되지 않는 것은 조금 짜증나지만(그렇게 하면 저는 시간을 많이 절약할 수 있었을 것입니다), 나중에 나타날 수도 있습니다.

Cordova 6.X에서 기본 제공 화이트리스트 플러그인을 제거하고 새 버전의 플러그인을 다시 설치해야 합니다.

cordova plugin remove cordova-plugin-whitelist

플러그인을 다시 설치합니다.

cordova plugin add cordova-plugin-whitelist

를 교환합니다.<allow-navigation href="*" />config.xml 파일로 변환합니다.<access origin="*" />내 경우엔 이 속임수가 통했어

두 가지

  1. 사용 중인 Ajax URL이 오리진 간 요청을 허용하는지 확인합니다.
  2. 교차 오리진 요청을 하면서 관련 헤더를 전달하고 있습니까?

읽으려면

http://enable-cors.org/

AngularJs에서 CORS를 활성화하는 방법

http://backbonetutorials.com/cross-domain-sessions/

cordova 6.x.x 를 사용하고 있는 경우는, 를 사용해 내장 cordova-syslog-syslog 를 언인스톨 할 필요가 있습니다.

cordova 플러그인 제거 cordova-interval-interval

를 사용하여 재설치합니다.

cordova 플러그인 추가 cordova-interval-interval

명령 프롬프트를 다시 시작하고 시도해 보십시오.

저는 html 파일 mata 태그에서 삭제한 후 동작하기 시작했습니다.

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

언급URL : https://stackoverflow.com/questions/30060534/ajax-requests-fail-after-upgrading-to-cordova-5-0-cordova-android4-0