驚喜,驚喜......我的代碼在Chrome和FF中完美運行,但在IE中卻不能運行。以下代碼正在執行跨域JSON請求。如果JSON結果的長度大於1,則假設用單選按鈕顯示所有結果。否則,它將返回單個地址並轉到重定向。在IE中,它總是用單選按鈕顯示結果,就像它總是大於1.我在這裏做錯了什麼?感謝您的幫助。
var url="http://clvplaces.appspot.com/maptools/rest/services/geocode?address=";
var address = someStreetNumber + " " + someStreetName;
var city = ", Las Vegas, NV";
var score = "&score=50";
var jsonCB = "&format=json&jsonCallback=?";
$.getJSON(url+address+city+score+jsonCB, function(results){
if(results.response.length > 1) {
$.each(results.response, function(i, item) {
showAddresses(item)
});
}
else {
var busAdd = results.response[0].streetno + " " + results.response[0].streetname;
busAdd += ", " + results.response[0].city + ", " + results.response[0].zip;
var latLong = results.response[0].latlng;
getJurisdiction(latLong, address);
}
});
我讀過IE中的$ .getJSON有緩存結果的傾向,所以用$ .ajax代替。所以,我將$ .getJSON塊取消爲:
$.ajax({
url: url+address+city+score+jsonCB,
cache: false,
dataType: "json",
success: function(results) {
// same if - else statements here
}});
這種更改完全沒有解決問題。此外,做任何這個服務器端不是我的選擇...不幸的是。
編輯/更新:
一次返回的結果如下所示。 IE瀏覽器總是顯示單個或從我的IF語句繁殖的結果,而Chrome和FF,因爲他們應該會顯示來自ELSE語句一個結果:
?({
errormsg: '',
response: [
{
latlng:'36.167352999999999,-115.148408',
score:'50',
streetno:'495',
streetname:'S Main St',
city:'Las Vegas',
state:'NV',
zip:'89101'
},
]
})
您可以通過console.log(results.response)來查看IE和Firefox之間的區別嗎?您是否嘗試清除緩存中的 – raina77ow
?您可以使用IE調試器工具。 – sbr
@ raina77ow它播種相同的JSON結果。 – Psykopup