2011-11-01 116 views
1

關於can't debug hanging $.post in firefox extension火狐AJAX調用返回NS_ERROR_DOM_BAD_URI或JSONP虛假錯誤

誰能告訴我爲什麼我的分機https://builder.addons.mozilla.org/addon/1022928/latest/與此Ajax調用:

var url = 'http://e-ønsker.dk/wishlist/ajax/add/'; 
$(this).hide(); 
//show icon loading 
$("#icon").show(); 
$.ajax({ 
    type: "POST", 
    url: url, 
    data: {title:$("#txtTitle").val(), url:encodeURIComponent(taburl)}, 
    success: function(data, textStatus) { 
     if(data.code > 0) 
    { 
    $("#icon").removeClass().addClass('accept'); 
    } 
    else 
    { 
    $("#icon").removeClass().addClass('error'); 
    if(data.code == '-1') 
     alert('kunne ikke finde din ønskeseddel på e-ønsker.dk - besøg e-ønsker.dk, og prøv derefter igen'); 
    } 
    }, 
    error: function(data, textStatus) { 
     alert(textStatus); 
    $("#icon").removeClass().addClass('error'); 
    } 
}); 

將返回錯誤NS_ERROR_DOM_BAD_URI。 HttpFox表示這是一個500錯誤,這將表明一個內部錯誤,但這個確切的調用在擴展中同時使用了chrome和safari,所以我懷疑這個錯誤是專門與firefox相關的。

UPDATE

所以我添加dataType: "jsonp"並做了一些神奇的,現在我得到一個200響應,但我仍然獲得parsererror。

怪異的事情是,經過修改我的服務器,以適應JSONP的jQuery選擇了錯誤的方法,而我在這裏展示alert(xhr.statusText);的xhr.statusText給了我一個警告與狀態文本「成功」,爲什麼不選擇jQuery的成功方法,當它實際工作?

+0

你確定'jsonp'?嘗試'json' – Rafay

+0

絕對是你的URL中的字母「ø」的問題 - 錯誤的文件編碼? –

+0

@ 3nigma - json給了我NS_ERROR_DOm_BAD_URI錯誤 – Jakob

回答

0

你不能從一個不同的域獲取數據您目前使用AJAX - >http://en.wikipedia.org/wiki/Same_origin_policy

如果您使用的是相同的域,然後使用相對路徑......我懷疑,Firefox是編碼e-ønsker.dk網址的一部分 - 使它看起來像一個不同的域。

+0

,但是由於OP說它在其他瀏覽器上工作... – Rafay

+0

@ 3nigma當我在瀏覽器(chrome)中輸入'http:// e-ønsker.dk/ wishlist/ajax/add /',它變成'http://xn--e-nsker-r1a.dk/wishlist/ajax/加/開Firefox的這個改變並沒有發生......但是當使用ajax時可能會這樣做 - 我建議使用相對路徑來刪除名稱更改/編碼的問題..... – ManseUK

+0

AH!非常正確... – Rafay