我試圖使用此工具http://www.extensionfactory.com/labs/conversion/將Chrome擴展轉換爲Firefox,除了AJAX調用外,它工作得很好。每次我讓來自Firefox擴展AJAX調用,我得到這個錯誤(在Chrome中正常工作):Firefox擴展上的AJAX錯誤(從Chrome移植)
[異常...「組件返回故障代碼:0x80004005的 (NS_ERROR_FAILURE)nsIXMLHttpRequest.send] 「nsresult: 」0x80004005的 (NS_ERROR_FAILURE)「 位置:」 JS幀:: 資源://nfglncbjnghpllgmelioileejdnldcgm-api-utils-lib/securable-module.js - >資源:// nfglncbjnghpllgmelioileejdnldcgm-API-utils的-LIB/content/content-proxy.js :: :: line 97「data:no]
這是AJAX調用i n個content_script(Chrome擴展):
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請求有一些限制,但我不知道該說什麼,因爲我在Internet上找不到任何東西。
也許你知道這裏發生了什麼......
的Firefox版本兼容你爲什麼用GET請求發送數據?雖然Firefox允許,但大多數服務器不會。 – 2012-02-01 07:32:13
順便說一句,重要的是要提到這是一個內容腳本 - 背景頁面的轉換是不同的,XMLHttpRequest應該在那裏工作。 – 2012-02-01 07:43:23
AJAX請求工作正常,我得到500錯誤,因爲它沒有發送服務器上所需的cookie數據,因爲我正在使用會話。解決方案是讓它發送像Chrome一樣的cookie數據。 – 2012-02-01 08:16:51