惊喜,惊喜......我的代码在Chrome和FF中完美运行,但在IE中却没有。以下代码正在执行跨域JSON请求。如果JSON结果的长度大于1,则假设使用单选按钮显示所有结果。否则,它将返回单个地址并继续进行重定向。在IE中,它始终使用单选按钮显示结果,如果它总是>我在这做错了什么?感谢您的帮助。
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
}});
这一改变绝对没有解决问题。此外,对我来说,做任何一个服务器都不是一个选择......不幸的是。
EDIT / UPDATE:
单次退货的结果如下所示。 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'
},
]
})
答案 0 :(得分:0)
尝试将此添加到网址:
var randomNum = Math.random() * 1000 | 1;
url = url + "?randomNum=" + randomNum;
答案 1 :(得分:0)
您需要添加
type : 'GET'
让你的Ajax请求在IE中工作......
缺少类型会在某些版本中引发错误