JQuery Mobile 앱이 있습니다. 이 응용 프로그램은 원격 웹 서비스를 공격해야합니다. 로컬 파일 시스템에서 앱을 실행하면 앱이 제대로로드됩니다. 그런데 버튼을 클릭하면 웹 서비스와 상호 작용하려고 시도합니다.PhoneGap의 JQuery Mobile 앱에서 웹 서비스에 연결
var vm = getParameters();
$.ajax({
url: https://www.mydomain.com/myService/myAction,
type: "POST",
data: JSON.stringify(vm),
contentType: "application/json",
success: action_Succeeded,
error: action_Failed
});
내가 잘못 뭐하는 거지 :
XMLHttpRequest cannot load https://www.mydomain.com/myService/myAction. Origin null is not allowed by Access-Control-Allow-Origin
내가 다음 코드로 서비스를 공격하려고 : 나는 웹 서비스를 공격 할 때, 나는 말한다 콘솔에서 오류가 보이십니까? 이 게시물의 모든 행운을하지 않고 모든 것을 시도 : XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin.
내 응용 프로그램은 Visual Studio를 통해 실행할 때 작동합니다. 내 직감은 그 시점에서 웹 서버 컨텍스트에서 실행된다는 것입니다. 그러나 PhoneGap을 통해 배포하고 싶습니다. 그렇기 때문에 웹 서버의 컨텍스트 내에서 실행하는 것은 문제가되지 않습니다. 그래서 로컬 파일 시스템을 통해 모든 파일 시스템을 실행하면 모든 것이 잘될 것이라고 생각했습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
정말 고마워요!
답변 해 주셔서 감사합니다. 나는 아직도 조금 혼란 스럽다. 위에서 언급 한 것들이 없으면 응용 프로그램은 내 dev env에서 작동합니다. 웹을 통해 사용하는 테스트 환경으로 밀어 넣으면 작동합니다. 그러나 로컬 파일이 테스트 환경에서 호스팅되는 웹 서비스에 접근하려고 시도 할 때 작동하지 않습니다. 이유를 설명해 주시겠습니까? 정말 고맙습니다. –
dev/test 환경은 무엇입니까? 데스크톱 브라우저에서 페이지를 실행하고 있습니까? '로컬 파일'은 무엇을 의미합니까? 위의 구성은 페이지가 phonegap 컨테이너에있을 때 필요합니다 (Android, iOS 등에서 앱으로 실행). – chrisben
내 앱의 첫 번째 페이지에서 웹 서비스를 누르십시오. DEV 웹 서버에서 실행되는 내 DEV env에서 정상적으로 작동합니다. Visual Studio가 시작됩니다. 그런 다음 전체 프로젝트가 TESTING 웹 서버 (IIS 7)에서 실행되도록 승격했습니다. 앱이 벌금을 부과합니다. 그런 다음 전화 에뮬레이터를 통해 서비스에 접속하려고 시도했지만 작동하지 않았습니다. PhoneGap이 로컬 파일 (http://jquerymobile.com/demos/1.1.0/docs/pages/phonegap.html)로로드되기 때문에 Chrome의 로컬 컴퓨터에서 index.html 파일을 열기로 결정했습니다. 나는 이것이 시험 서비스 URL을 가리키고 있음을 확신시켰다. 그러나, 나는 아직도 언급 된 오류를 얻는다. –