문제는 다음과 같습니다. 일부 호스트 (예 : alexa.com)에 AJAX 요청을 수행해야합니다. Chrome에서는 괜찮 았지만 Firefox에서는 상태 200으로 응답하여 공을 받았습니다. 동일한 기원 정책 때문입니다.하지만 Firefox 추가 기능은 '콘텐츠 스크립트'가 아니라 요청할 수 있습니다. 이 요청을 "비 콘텐츠 스크립트"로 이동하고 "콘텐츠 스크립트"에 응답을 반환하는 방법을 이해할 수 없었습니다.Firefox Addon에서 콘텐츠 스크립트 및 도메인 간 요청
감사합니다.
UPD : 나는 콘텐츠 스크립트에 정보를 전달하는 방법을 발견 - 잘 작동 port.emit()
합니다. 이제 addon 스크립트에서 AJAX를 수행하는 방법에 대한 질문이 남아 있습니다.
var Request = require("request").Request;
Request({
url: "http://*****" + url,
onComplete: function (response) {
worker.port.emit('message', response);
}
}).get();
콘텐츠 스크립트가 응답을받지 못했습니다. 죄송합니다. 아직 콘솔에 오류 메시지를 보내는 방법을 모르겠습니다. 또한 비동기로 만들 수있는 방법이 있습니까?
UPD2 : 요청 작동 방법을 아직 모릅니다.
{
"readyState": 0,
"status": 0,
"statusText": "[Exception... \"Failure\" nsresult: \"0x80004005 (NS_ERROR_FAILURE)\" location: \"JS frame :: resource://jid0-alfzkx8ttazxkergga4i8vsf5re-at-jetpack/api-utils/lib/loader.js -> resource://jid0-alfzkx8ttazxkergga4i8vsf5re-at-jetpack/api-utils/lib/sandbox.js -> resource://jid0-alfzkx8ttazxkergga4i8vsf5re-at-jetpack/api-utils/lib/content/content-proxy.js :: <TOP_LEVEL> :: line 106\" data: no]"
}
UPD3 : 나는 내용 스크립트 요청에서 오류를 경고하기 위해 노력했다, 실제로하지 '같은 기원'것 같다 그래, 내가 그것을 가지고 - 파이어 폭스가 완전히 내용에서 모든 요청을 금지하고 있기 때문입니다 스크립트. UPD4 : 나는
var Request = require("request").Request;
worker.port.emit('message', Request);
로 요청을 표시하기 위해 노력했다 그리고 그것은 아무 것도 반환하지 않습니다 - 보인다, 요청 모듈과 그 문제를 (또는이 모듈이 포함 방법 방식에). 일반 XMLHttpRequest도 작동하지 않습니다. UPD5 : 최신 SDK의 CONSOLE.LOG으로 (response.toSource는()) 빈 객체를 반환
info: test3: Response:({})