2012-01-29 4 views
0

그래서 내 스크립트에서 로컬 호스트로 사이트 간 AJAX 요청을하려고합니다. users 스크립트 (파이어 폭스의 스크립트 엔진에서 실행 중)에서이 스크립트를로드 중입니다.userscript에서 로컬 호스트로 요청하기

myscript_include.setAttribute('src', 'http://localhost/myscript.js?' + Math.random()); 
head.appendChild(myscript_include); 

실제로 작동합니다. 그런 다음 myscript.js에서 필자는 localhost에서 데이터를 읽으려고합니다. (필자는 실제 Firefox 확장을 작성하지 않고 웹 페이지에 필요한 기능을 추가하기 위해 내 localhost의 스크립트에 get-post 요청을하고 싶습니다. 실제로 만들어진 요청을 GET

$.getJSON('http://localhost/ajaxdata.json', function(json) { 
    alert(json.message); 
}); 

파이어 폭스 JS 콘솔 쇼, 상태는 200 OK입니다 : 크로스 사이트 AJAX 요청을 만들기에

다음은 내가 myscript.js에 추가 할 수 있습니다. 실제로 Content-Length 39도 표시되지만 응답 필드는 비어 있고 경고는 표시되지 않습니다!

그 건설에 무슨 문제가 있습니까? (끔찍한 것 제외)? 내가 원하는 것을 할 수있는 방법이 있습니까?

+0

https://developer.mozilla.org/En/HTTP_access_control 그냥 모든 것을 주입 cruft에를 생략하고 사용'GM_xmlhttpRequest()'. –

+0

그 injection cruft의 아이디어는 아약스를 사용하지 않는 것이 었습니다 - 나는 이것을 같은 방식으로 userscript에 쓸 수있었습니다. 이 네임 스페이스에서 개인 용도로 스크립트를 실행하는 것은 매우 편안합니다. 많은 GM 엔진 문제가 이러한 방식으로 회피되었습니다. 그래서 가능하면 GM-API를 사용하지 않고이 문제를 해결하는 것이 더 좋을 것입니다. – user1094249

답변

1

확실하지는 않지만 어쩌면 Access-Control-Allow-Origin 헤더를 localhost에 추가하면 해결 될까요?

심판 :

+0

그렇지 않은 것 같습니다. 이 응답 상태와 같은 것이 없으면 최소한 200이지만, .htaccess에 'Header add Access-Control-Allow-Origin "http : // somedomain"을 추가하면 응답 필드에 500 상태와 Apache 오류 메시지가 반환됩니다. – user1094249

+0

@ user1094249 mod_header가 설치되어 있습니까? 무슨 아파치 오류 메시지, 그냥 내부 서버 오류있어? 200 점을 얻고 있지만 콘텐츠가 없다는 사실은 사이트에 대한 보안 정책으로 인해 요청에 대한 액세스가 거부된다는 것을 강력하게 나타냅니다. 예를 들어 stackoverflow에서 firebug를 실행하고'$ .get ('http://www.google.com');을 실행하면 콘솔에서도 동일한 동작을 볼 수 있습니다. – Howard

+0

감사합니다. 실제로 제대로 설치되지 않았습니다. – user1094249