0

驚いたことに、私のコードは 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 ステートメントから 1 つまたは複数の結果を表示しますが、Chrome と FF は ELSE ステートメントから 1 つの結果を表示します。

?({ 
    errormsg: '',
    response: [
        {
            latlng:'36.167352999999999,-115.148408',
            score:'50',
            streetno:'495',
            streetname:'S Main St',
            city:'Las Vegas',
            state:'NV',
            zip:'89101'
        },
    ]
})
4

2 に答える 2

0

これをURLに追加してみてください:

var randomNum = Math.random() * 1000  | 1;
url = url + "?randomNum=" + randomNum;
于 2012-10-23T23:44:29.930 に答える
0

追加する必要があります

type : 'GET'

Ajax リクエストが IE で機能するには...

タイプが見つからないと、一部のバージョンでエラーがスローされます

于 2012-10-24T00:40:46.367 に答える