2012-05-14 51 views
0

$ .getJSON正在返回一個帶IE和Opera瀏覽器的文件(Firefox,Chrome ...正常工作)。

的代碼是這樣的:

$.getJSON("http://open.mapquestapi.com/nominatim/v1/search.php?format=json&osm_type=N&bounded=1&limit=100&viewbox=-5.667593479156494,43.54767717445222,-5.656242370605469,43.54280902999833&q=Restaurants", 
{ 
    tagmode: "any", 
    format: "json" 
}, 
function(data) { 
    var ind = 0; 
    $.each(data, function(i, pos_reg){ 
     alert("Recovery " + i++ + " row"); 
    }); 
}) 
.error(function() {  
    alert("Was an error"); 
}); 

我認爲這個問題是從服務器返回的HTTP標頭。 如果我在Firefox或Chrome上粘貼URL,我會看到JSON響應。 如果我在IE和Opera上粘貼URL,他們會嘗試下載JSON響應文件。

我想成才這樣的:

$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"}); 

但相同的結果:(

任何想法,請在此先感謝

+0

嘗試獲取簡單的get和eval返回的數據 – Sergey

回答

2

這不是問題的答案真實?!。問題(原問題含糊不清)是如何在Opera和Internet Explorer中進行跨域ajax調用。

複製到由主題啓動程序鏈接的Cross-origin Ajax requests don't work in Opera and IE9?


我知道Opera默認不會打開JSON,它確實會嘗試下載文件。您可以在設置中更改此設置:「設置」>「高級」>「下載」,現在搜索json,如果您沒有找到它,可以創建一個新類型。現在填寫application/json並將其設置爲使用Opera打開(我還添加了文本/ json,因爲有時網站會返回此內容類型)。下面是這些屏幕的截屏:

Opera json download settings

我想,你可以做在Internet Explorer類似的東西爲好。 編輯:我找到了Internet Explorer的解決方案。它已經在SO上得到了答覆,所以我只是在這裏發佈鏈接到答案:https://stackoverflow.com/a/2492211

+0

感謝Styxxy :)但我不能接受這個Web用戶:P – user512663

+1

好吧,你遇到的問題是由於安全違規(跨域請求)。你的問題本身並不明確。你必須使用JSONP來解決這個問題。 – Styxxy

+0

可能吧! @Styxxy:D但是......在Firefox和Chrome中完美工作是否正常?提前致謝! – user512663

相關問題