2012-02-01 3 views
0

이 도구를 사용하여 Chrome 확장 프로그램을 Firefox로 변환하려고 시도했습니다. http://www.extensionfactory.com/labs/conversion/이며 AJAX 호출을 제외하고는 훌륭하게 작동합니다. (크롬 잘 작동에) 나는 파이어 폭스 확장 기능에서 AJAX 전화를 걸 때마다, 나는이 오류가 :Firefox 확장 프로그램의 AJAX 오류 (Chrome에서 이식 됨)

[예외 ... "구성 요소가 오류 코드 반환 : 0X80004005 (NS_ERROR_FAILURE를) nsIXMLHttpRequest.send] "nsresult"0X80004005 (NS_ERROR_FAILURE) "위치"JS 프레임 :: 자원 : //nfglncbjnghpllgmelioileejdnldcgm-api-utils-lib/securable-module.js -> 자원 : // nfglncbjnghpllgmelioileejdnldcgm-API-유틸-LIB/content/content-proxy.js :: :: line 97 "data : no"

이것은 AJAX 호출입니다. n은 content_script (크롬 확장) :

var dataString='original_url='+imgsrc+'&filename='+filename+'&crop_x='+selX+'&crop_y='+selY+'&crop_h='+selH+'&crop_w='+selW; 
$.ajax({ 
    type: "GET", 
    url: "http://www.[website.com]/crop", 
    data: dataString, 
    async:false, 
    success: function() { 
     alert('Image successfully added!'); 

     iframe.src = iframe.src; 

    } , 
    error:function(){ 
     $.ajax({ 
      type: "GET", 
      url: "http://[www.website.com]/loggedin", 


      success: function() { 
       alert('An error occured when uploading image to server! Please try again.'); 

      } , 
      error:function(){ 

       alert('You are not logged in! Please login.'); 
       window.open('http://[www.website.com]/login'); 
      } 
     }); 

    } 
}); 

나는 오류 및 아무것도 찾을 수와 관련된 아무것도를 추적하지 않으며 나는 방화범에서 더 자세한 정보를 얻을 수 없습니다. 또한 웹 사이트 주소와 서버 코드를 확인했는데 모든 것이 정상입니다. Firefox에서만 작동하지 않습니다.

Firefox 확장 API에 AJAX 요청과 관련하여 몇 가지 제한이 있다고 생각하지만 인터넷에서 아무것도 찾을 수 없으므로 어떻게 해야할지 모르겠습니다.

어쩌면 당신은 여기에서 무슨 일이 일어나고 있는지 알고

...

+0

파이어 폭스의 버전과 호환되지 않습니다 왜이다 GET 요청으로 데이터를 보내시겠습니까? Firefox는이를 허용하지만 대부분의 서버는 그렇지 않습니다. –

+0

Btw, 이것이 내용 스크립트라는 것을 언급하는 것이 중요했습니다. 배경 페이지의 변환이 다른데 XMLHttpRequest가 거기에서 작동해야합니다. –

+0

AJAX 요청이 작동합니다. 세션에서 작업 중이기 때문에 서버에 필요한 쿠키 데이터를 보내지 않았기 때문에 500 오류가 발생했습니다. 해결책은 Chrome에서와 같이 쿠키 데이터를 보내도록하는 것입니다. –

답변

0

가 당신에게 상세한 대답을하기는 어렵습니다 그래서 파이어 폭스 확장을 위해 여러 가지 방법이 있습니다,하지만 난 당신이 받고있는 오류 메시지가있는 경우 예상되고 말 것 확장 샌드 박스 환경에서 허용하지 않기 때문에 네트워크 통화를하려고합니다.

당신은 여기에서 찾을 수 있습니다 최신 SDK를 사용할 수있는 경우 : https://addons.mozilla.org/en-US/developers/docs/sdk/latest/

당신은 그들이 정확하게 당신이 원하는 것을 자신의 API의 "요청"라는 클래스를 알 수 있습니다. 그것은 여기에서 찾을 수 있습니다 : (이 글을 쓰는 시점에서 1.4) 최신 SDK를 사용하는 경우 https://addons.mozilla.org/en-US/developers/docs/sdk/1.4/packages/addon-kit/docs/request.html

한 가지주의 할 전에 4

+0

이 변환 서비스는 분명히 Add-on SDK 1.0을 사용하여 추가 기능을 만들고 있습니다. 하나는 변경할 수 없습니다. 오히려이 오래된 SDK 버전을 사용함에도 불구하고 부가 기능을 "Firefox 99"와 호환되는 것으로 표시하는 것에 관한 것입니다. –

+0

답변 해 주셔서 감사합니다. 버그가있는 것처럼 수동으로 최신 sdk로 업그레이드하려고합니다. –

관련 문제