codememo

Ionic + Angular POST 요청 반환 상태 404

tipmemo 2023. 8. 21. 21:20
반응형

Ionic + Angular POST 요청 반환 상태 404

방금 Angular + Ionic의 새로운 버전을 업데이트하고 원격 요청 처리 방법이 작동하지 않고 항상 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
{,…}

원격 요청을 처리하는 메서드의 코드는 다음과 같습니다.

    // set transfer credentials
                $http({
                    method : 'POST',
                    url : $scope.remoteUrl,
                    data: {img_base64: "/9j/4AAQSkZ"},
                    headers: 'application/json',
                    timeout: 10000
                    // success response
                }).success(function(data, status, headers, config) {
                    //SUCESSS
                    } else {
                    //PROCESSING ERROR                     
}

                    // error response
                }).error(function(data, status, headers, config) {
                    // ERROR
                });

저는 다음 주제를 사용하여 이 문제를 해결하려고 했습니다.

AngularJs $http.post 호스트가 데이터를 전송하지 않음

그리고.

Angular + Ionic Post 요청 geting 404를 찾을 수 없습니다.

하지만 운이 없습니다.

서버 측에서 다음 방법으로 요청을 처리하고 있습니다.

$inputJSON = file_get_contents('php://input');
    $input= json_decode( $inputJSON, TRUE ); //convert JSON into array

제가 우체부나 컬을 사용하여 요청을 보내려고 하면 모든 것이 작동하는 것 같습니다.

이온 정보:

Node Version: v0.12.2
Cordova CLI: 5.0.0
Ionic CLI Version: 1.3.22
Xcode version: Xcode 6.3.1 Build version 6D1002 
ios-sim version: Not installed
ios-deploy version: Not installed

AngularJS 버전:

"version": "1.3.13",

어떻게 해결하면 좋을까요?

조언해 주셔서 감사합니다.

음, 방금 같은 문제에 부딪혔어요: 헤더는 그것이 가져왔다는 것을 암시합니다.from cache하지만 사실, 그것은 새로운 버전의 코르도바의 새로운 보안 정책과 관련이 있는 것 같습니다.

해결 방법은 다음과 같습니다.

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.comiOS에서만 사용됩니다.

self의 현재 호스트를 의미합니다.index.html파일.

요청을 실행하려면 자신의 요청을 추가해야 합니다.표준이 아닌 경우 프로토콜 및 포트를 추가하는 것을 잊지 마십시오.

원하지 않는 경우 메타 태그를 건너뛸 수 있지만 화이트리스트 플러그인에서 많은 경고가 표시됩니다.

플러그인의 리드미어에서 이를 구성하는 방법에 대한 자세한 내용을 확인하십시오.

그런 다음 앱을 다시 빌드하면 다시 작동합니다.

저도 이런 문제가 있어서 검색을 많이 했는데 결국...화이트리스트 플러그인을 제거했습니다.

cordova plugin remove cordova-plugin-whitelist

그런 다음 다시 설치했습니다.

cordova plugin add cordova-plugin-whitelist

그것은 나에게 도움이 되었고 그것이 당신의 문제를 해결하기를 바랍니다.

저는 이것으로 꽤 오랫동안 고생했지만, 요령은 플러그인을 설치하고 index.html에 CSP를 구성한 다음 플러그인을 제거하고 다시 추가하는 것이었습니다.

(from cache)응답 상태는 브라우저가 잘못된 응답을 캐시하여 재생 중임을 나타냅니다.캐시를 지우거나 캐시 버스팅 기술을 사용합니다.

언급URL : https://stackoverflow.com/questions/30122890/ionic-angular-post-request-return-state-404

반응형