2014-07-11 7 views
5

웹 페이지에 몇 가지 도구를 구현하는 Greasemonkey 스크립트를 개발 중입니다. 이 스크립트는 지금 현재 파이어 폭스에서 나는 완전히 데이터를 내 jQuery를 AJAX 요청을 중단이 콘솔 오류를 얻고있다Firefox의 greasemonkey 스크립트에서 Cross-Origin Requests를 허용하려면 어떻게합니까?

http://localhost/chess/heartbeat.php 

의 데이터에 대한 요청을합니다. 차단

크로스 원산지 요청 : 동일한 기원 정책

http://localhost/chess/heartbeat.php. 

이에서 원격 자원을 읽어 허용하지가 동일한 도메인에 리소스를 이동하거나 CORS를 가능하게함으로써 해결할 수 있습니다.

Google 크롬을 사용하여이 문제를 해결할 수 있습니다. 크롬을위한 간단한 브라우저 확장으로 사용할 때 Greasemonkey와 동일한 작업을 수행 할 수 있으며 플러그인에 대한 매니페스트 파일에 다음 권한을 추가하여 동일한 데이터 요청을 Firefox에 허용 할 수 있습니다. 차단됨 :

"permissions": [ 
    "<all_urls>" 
    ] 

어쨌든 이것은 크롬에서 작동하지만 Firefox에서 동일한 효과를 얻고 싶습니다. 나는이 문제를 연구 해왔고 간단한 대답을 찾을 수 없다.

+0

http://wiki.greasespot.net/GM_xmlhttpRequest – epascarello

+0

그 트릭을 했으니, 당신은 생명의 은인입니다! – user3810422

답변

8

일반적으로 XMLHttpRquest이며 jQuery의 상위 레벨 API가 포함되어 있으며 무제한 사이트 간 요청은 허용되지 않지만 동일한 출처 정책 및 CORS에 의해 제한됩니다.

이미 지적했듯이 서버가 CORS를 구현하지 않거나 원본 사이트를 허용하는 경우에도 교차 사이트 XHR을 수행 할 수있는 GM_xmlhttpRequest (Scriptish)을 사용할 수 있습니다. 그것은 또한 다른 좋은 것들도 함께 제공됩니다.

사용자 스크립트에 @grant GM_xmlhttpRequest 메타 데이터 블록을 추가해야합니다. 그렇지 않으면 스크립트가 나중에 중단 될 수 있습니다.

크롬 확장 프로그램에 대한 언급이 있기 때문에 Firefox 확장 프로그램에서도 사이트 간 XHR을 수행 할 수 있습니다. 예. 대부분의 사용자 스크립트는 PageMod을 사용하여 SDK 부가 기능으로 쉽게 이식 할 수 있어야하며 Chrome 확장 프로그램에서 수행 할 작업과 유사하게 certain permissions을 사용할 수 있어야합니다.

+1

스크립트 및 확장 프로그램에서 작동하는 크로스 브라우저 방법 만있는 경우 상황이 훨씬 쉬워집니다. – user280109

관련 문제