2017-05-02 1 views
1

AJAX로 일부 파일을 가져 오려고하는 Cordova/Phonegap 응용 프로그램이 있습니다.코르도바에서 CORS 리디렉션

XMLHttpRequest cannot load https://docs.google.com/uc?export=open&id= .... Redirect from ' https://docs.google.com/uc?export=open&id= ...' to ' https://doc-xx-xx-docs.googleusercontent.com/docs/...?e=open ' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

나는 config.xml

<access origin="*" /> 
<allow-navigation href="*" /> 
<allow-navigation href="http://*/*" /> 
<allow-navigation href="https://*/*" /> 

에 다음 또한 index.html

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: 'unsafe-eval' 'unsafe-inline' http: https:"> 

내가 cordova serve를 사용하여 브라우저에서 응용 프로그램에 액세스하고있어 추가 추가 시도 : 나는 다음과 같은 오류가 발생합니다 .

여전히 같은 오류가 발생합니다. 어떤 생각?

답변

0

엔드 포인트를 제어 할 수 없다고 가정 할 때 자신의 API를 설정해야 할 수도 있습니다.

당신이 라인을 포함 할 수 PHP에서 엔드 포인트 작성하는 경우, 예를 들어

:

header('Access-Control-Allow-Origin: *'); 

그런 다음 최종 지점이 API에 대한 응답을 전달합니다 구글 엔드 포인트로 요청을 전달할 수 있으며, 그 통과 할 수 있습니다 귀하의 응용 프로그램에 대한 응답.

Google 엔드 포인트가 원본이 아닌 경우 다른 서버의 요청을 수락한다고 생각합니다.

사실상 요청은 http : //가 아닌 file : // URL에서 이루어 졌는지 확인해야합니다.

+0

PHP의 끝점? 나는 이것이 코르도바 어플 리케이션이고 나는 PHP 프록시를 설치할 수 없다고 말했다. –

+0

나는 이것이 코르도바 어플 인 것을 알고있다. 그러나 Cordova의 XMLHttpRequest는 원본 null의 헤더와 함께 전송됩니다. 파일을 요청하는 Google의 끝점은 null 출처를 허용하지 않으므로 요청을 전송하기 위해 자신의 서버에 자체 API가 필요할 수도 있습니다. –

+0

제 답변에 희망 사항을 조금 더 추가했습니다. –