2013-06-06 4 views
0

저는 아약스 요청을 많이 사용하는 웹 단일 페이지 응용 프로그램에서 작업 중이며 데스크톱 브라우저에서 제대로 작동합니다. 그러나 Xcode에서 코드 로더 래퍼에 넣고 에뮬레이터 나 iPhone에서 다시 실행하면 http://myhost:3000/api/login과 같은 요청 대신 어떤 이유로 인해 file:///api/login이 표시되고 분명히 실패합니다. 그 이유는 무엇일까요?왜 cordova 포장 된 응용 프로그램에서 http : // 요청이 file : ///으로 바뀌 었습니까?

+0

서버가 아닌 파일을 직접 열어 본 것 같습니다. – pvnarula

답변

0

PhoneGap 응용 프로그램은 file: 페이지에서 실행되며 절대 경로는 /api/login 일 것입니다. 따라서 절대 경로는 file:///api/login으로 해석됩니다.

코드가 이전에 http://myhost:3000 페이지에서 실행되었으며 절대 경로가 http://myhost:3000/api/login 인 것으로 가정합니다.

PhoneGap에서 호스트에 요청을하려면 경로에 호스트를 명시 적으로 지정해야합니다. 호스트에 Ajax 액세스를 허용하려면 explicitly whitelist이 필요할 수 있습니다.