2012-12-14 7 views
3

Firefox OS 용 패키지 응용 프로그램을 살펴본 결과 장치에 OS 빌드가 없으므로 시뮬레이터를 사용하고 있습니다. XHR 요청에 문제가 있습니다. 문제가 내가 간과하고있는 설정인지 아니면 시뮬레이터가 버그가 있는지 확실하지 않습니다.Firefox OS 패키지 응용 프로그램 및 XMLHttpRequests

웹 서비스에 XHR 요청을하기에 충분한 네트워크 -http에 대한 사용 권한을 추가하는 것이 좋습니다. 나는 또한 소스 코드에서 systemXHR 권한을 보았다. 나는 둘 다 시도했지만 지금까지 아무 기쁨도. 나는 OS X 용 파이어 폭스와 시뮬레이터를 사용하고 있는데 내 매니페스트 같은 같습니다

매니페스트 :

{ 
    "version": "0.1", 
    "name": "Hello World", 
    "description": "A hello world app.", 
    "launch_path": "/app/index.html", 
    "icons": { 
    "16": "/app/img/icons/mortar-16.png", 
    "48": "/app/img/icons/mortar-48.png", 
    "128": "/app/img/icons/mortar-128.png" 
    }, 
    "installs_allowed_from": ["*"], 
    "permissions": { 
    "systemXHR": {}, 
    "network-http": {}, 
    "network-tcp": {} 
    }, 
    "type": "privileged" 
} 

similar question 대답했습니다,하지만 난 대답이 웹 애플리케이션에 대한 의미 된 것 같아 패키지 앱이 아니라 사례가 도움이 될 것입니다.

분명하지 않은 부분이 있습니까, 시뮬레이터가 고장 났거나 패키지 된 응용 프로그램에 CORS가 필요합니까?

+0

편집 : – aerych

+0

Windows 버전의 시뮬레이터에서이 작업을 시도 할 수 있었으며 XHR은 예상대로 작동합니다. 그것은 OSX 시뮬레이터 미리보기가 그냥 버그 것 같습니다. – aerych

+0

응용 프로그램을 설치할 때 권한이 부여 된 유형을 작동시키기 위해 필요한 다른 manifest를 압축하여 사용하고 있습니까? – Macmee

답변

6

systemXHR 권한을 사용하려면 요청 개체를 만들 때 특수 인수를 전달해야합니다.

var xhr = new XMLHttpRequest({mozSystem: true}); 
+0

그래. 나는 그래도 기쁨은 없다. – aerych

2

이 :

$.ajaxSetup({ 
    xhr: function() {return new window.XMLHttpRequest({mozSystem: true});} 
}); 

CORS를 사용해야한다고 생각하십시오. 내 응용 프로그램은 CORS가없는 시뮬레이터에서 정상적으로 작동하지만 로컬 서버에서 실행되면 원격 REST 서버를 호출하지 못합니다. (예를 들어, 부하 HTML 서식) "텍스트"일부 $ 아약스 통화

당신은 결과 동안으로이 XMLDocument를 얻을 수 있습니다 :

하면

데이터 유형을 설정하는 잊어 버린 경우주의하십시오 데스크톱 브라우저는 문자열을 반환합니다. 내가 OSX를 사용하고 지정

"permissions": { 
    "systemXHR" : { 
     "description" : "Required to access remote api" 
    } 
} 
0

내가 애플 리케이션의 manifest.webapp 파일 systemXHR 권한을 가능하게했다, 내 파이어 폭스 OS 응용 프로그램에서 CORS를 활성화합니다.
관련 문제