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="*" />
내 경우엔 이 속임수가 통했어
두 가지
- 사용 중인 Ajax URL이 오리진 간 요청을 허용하는지 확인합니다.
- 교차 오리진 요청을 하면서 관련 헤더를 전달하고 있습니까?
읽으려면
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
'programing' 카테고리의 다른 글
JSON 객체 배열의 첫 번째 요소에 액세스하는 방법 (0) | 2023.02.26 |
---|---|
WooCommerce 카트에서 배송을 제거하려면 어떻게 해야 합니까? (0) | 2023.02.26 |
modemjs를 사용하여 각도 재료에서 md-datepicker 형식 변경 (0) | 2023.02.26 |
WooCommerce 관리 주문 개요에 주문 메타데이터 추가 (0) | 2023.02.26 |
WordPress paginate_links - 사용방법 (0) | 2023.02.26 |