0

私はこのコードを持っています:

$.get('http://mapit.mysociety.org/areas/'+ulo, function(response) {

                        console.log(response);

                        var areaList = [];

                        for (var k in response) {
                                 var obj = response[k];
                                 areaList.push(obj);
                                 console.log(response[k]);

                            }
                        var len = areaList.length;

Chromeでは、たとえば+uloをwembleyに変更するなどしてうまく機能します。

Chrome Dev Toolで、見出しオブジェクトの下にある2つのconsole.logに従ってオブジェクトを取得します。

Object index_fb.js:41 [Object all_names:Object code:Object country: "E" country_name: "England"generation_high:18generation_low:1 id:8258 name: "Wembley Central" parent_area:2488 type: "LBW" type_name: "ロンドン特別区」 プロト:オブジェクト

しかし、Firefoxでも同じで、Firebugでこれを取得します。

{"8258":{"parent_area":2488、 "generation_high":18、 "all_names":{}、 "id":8258、 "codes":{"ons": "00AEHE"、 "gss": "E05000104 "、" unit_id ":" 11458 "}、" name ":" Wembley Central "、" country ":" E "、" type_name ":" London borough ward "、"generation_low ":1、" country_name ":" England "、" type ":" LBW "}}

index_fb.js(41行目)

{{

index_fb.js(48行目)

「」

index_fb.js(48行目)

8

index_fb.js(48行目)

2

index_fb.js(48行目)

5

index_fb.js(48行目)

8

index_fb.js(48行目)

「」

index_fb.js(48行目)

index_fb.js(48行目)

index_fb.js(48行目)

{{

index_fb.js(48行目)

「」

index_fb.js(48行目)

p

index_fb.js(48行目)

a

index_fb.js(48行目)

r

index_fb.js(48行目)

e

index_fb.js(48行目)

n

index_fb.js(48行目)

t

index_fb.js(48行目)

_

index_fb.js(48行目)

a

index_fb.js(48行目)

r

index_fb.js(48行目)

e

index_fb.js(48行目)

a

index_fb.js(48行目)

「」

index_fb.js(48行目)

index_fb.js(48行目)

index_fb.js(48行目)

2

index_fb.js(48行目)

4

index_fb.js(48行目)

8

index_fb.js(48行目)

8

index_fb.js(48行目)

、など

したがって、Console.log(response)は正しいですが、次のすべての文字を使用しているようです。

for (var k in response) {

k = Firefoxの数値。クロムの場合と同様に、kは整数8258として扱われます。

両方で機能するようにこれを回避するにはどうすればよいですか?

ありがとう

編集

これは新しいコードです:それでも同じ問題:

$.get('http://mapit.mysociety.org/areas/'+ulo, function(response)  {

                        console.log(response);

                        var areaList = [];

                        for (var k in response) {

                            if (response.hasOwnProperty(k)) { 
                                 var obj = response[k];
                                 areaList.push(obj);
                                 }
                            }

私も試しましたが、Getを$ .ajaxにラップして、jsonが返されることを確認する必要がありますか。このアプリには、安全でないソースへのajaxの使用に問題があります。

これまでのところ喜びはありません:(

4

1 に答える 1

2

Firefoxは、オブジェクトを文字列と見なします。dataType:"json"列挙できる適切なJSONオブジェクトを取得するように指定する必要があります。Jqueryを使用すると、次の最後のパラメーターを使用してdataTypeを設定できます$.get

$.get(url,successFunction,"json")
于 2012-08-31T14:50:58.240 に答える