Ionic + Angular - POST 요청 후 "404 Not Found (캐시로부터)"를 피하는 방법
이 질문은 이전 질문의 일부를 가리키고 있습니다.Ionic + Angular POST 요청 반환 상태 404
하지만 나는 효과적인 해결책을 찾을 수 없었다.
문제는 다음과 같습니다.
디바이스에서 실행 중인 모바일 앱에서 요청을 하면 항상 404라는 응답이 나옵니다.
Request Method:POST
Status Code:404 Not Found (from cache)
Request Headersview source
Accept:application/json, text/plain, */*
Content-Type:text/plain
Origin:file://
User-Agent:Mozilla/5.0 (Linux; Android 4.4.2; Lenovo Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
Request Payloadview source
{,…}
그러나 Chrome 브라우저의 Postman 플러그인을 사용하여 데스크톱에서 동일한 요청을 시도하면 필요한 데이터가 포함된 응답 200이 항상 표시됩니다.
Angular http method에 의한 문제인 줄 알았는데, 이전 투고에서 그렇지 않다는 것을 알게 되었습니다.
어떻게 하면 피할 수 있을까요?요청 시 또는 서버측(PHP)에서 헤더를 앱의 HTML로 설정해야 합니까?
조언해 주셔서 감사합니다.
편집:
다음과 같이 cache:false도 설정해 보았습니다.
$http({
method : 'POST',
url : $scope.remoteUrl,
data: postData,
headers: headersData,
cache: false,
timeout: 10000
// success response
})
하지만 운이 없었지.
저도 같은 문제에 부딪혔어요.새로운 버전의 Cordova의 새로운 보안 정책과 관련이 있는 것 같습니다.
해결 방법은 다음과 같습니다.
cordova plugin add cordova-plugin-whitelist
그런 다음 콘텐츠 정책을index.html
메타 태그(사용자 자신의 호스트 또는 모든 요청을 수락하기 위한 '*' 사용):
<meta http-equiv="Content-Security-Policy" content="default-src 'self' yourhost.com ws://localhost:35729 data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src *;script-src 'self' localhost:35729 'unsafe-eval' 'unsafe-inline';">
default-src
일반적인 요구에 사용됩니다.ws://localhost:35729
호스트는 에서 라이브 세션에 사용됩니다.ionic serve
.
script-src
안전한 스크립트 실행에 사용됩니다.
unsafe-inline
그리고.unsafe-eval
각도가 제대로 작동하기 위해 필요합니다.
data: gap: https://ssl.gstatic.com
iOS에서만 사용됩니다.
self
의 현재 호스트를 의미합니다.index.html
파일.
요청이 작동하려면 자신의 요청을 추가해야 합니다.표준이 아닌 경우 프로토콜과 포트를 추가하는 것을 잊지 마십시오.
원하지 않는 경우 메타 태그를 건너뛸 수 있지만 화이트리스트 플러그인에서 많은 경고가 표시됩니다.
플러그인의 readme에서 이를 구성하는 방법에 대한 자세한 내용은 다음과 같습니다.
그런 다음 앱을 다시 빌드하면 다시 작동합니다.
같은 문제가 발생했지만 아무것도 해결되지 않아 화이트리스트 플러그인을 삭제했습니다.
cordova plugin remove cordova-plugin-whitelist
다시 설치했다.
cordova plugin add cordova-plugin-whitelist
그리고 효과가 있었다
저도 같은 문제가 있어서 다음 플러그인을 추가하여 해결할 수 있었습니다.
ionic plugin add https://github.com/apache/cordova-plugin-whitelist.git
오랜 시간이 흐른 후, 저는 효과가 있는 솔루션을 찾았습니다. 바로 실행입니다.cordova plugin add cordova-plugin-whitelist
제 경우 config.xml과 index.html을 origin으로 이미 설정해 두었습니다.
제 안드로이드 디바이스의 Firebase 사인도 비슷한 문제가 있었지만, 브라우저에서 로그인할 수 있었습니다.
cordova plugin remove cordova-plugin-whitelist
cordova plugin add cordova-plugin-whitelist
위의 행을 사용하여 문제를 해결.
언급URL : https://stackoverflow.com/questions/30161952/ionic-angular-how-to-avoid-the-404-not-found-from-cache-after-post-reque
'prosource' 카테고리의 다른 글
JSON 데이터로 HIVE 테이블을 만드는 방법은 무엇입니까? (0) | 2023.02.16 |
---|---|
Wordpress wp-config 환경 변수 사용 (0) | 2023.02.16 |
asp.net asmx 웹 서비스가 json 대신 xml을 반환함 (0) | 2023.02.12 |
각도 작성동적 모듈 집합이 있는 JS 앱 (0) | 2023.02.12 |
export declare class Actions에서 declare는 무엇을 합니까? (0) | 2023.02.12 |