1

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

 $.ajax({
        url: 'carrinho/fretecheckout/',
        data: {cep: cep, peso: peso, valor: valor, dimensoes: dimensoes, ids: ids},
        dataType : 'json',
        complete: function() {
            $('#checkoutBody').removeClass("loadingfrete");
        },
        success: function(data) {                
            $('#carrinhocep').val(cep);
            var frete = data;
            $('.segundopassofrete').html('');
            $('#freteselecionado').remove();
            for (var i = 0; i < frete['frete'].length; i++) {               

このコードは私にそれ(localhost)を返します:

{"frete":[{"peso":"49300","classificador":"Retira","fk_frete":"15","prazo":"Prazo de entrega at\u00e9 2 dias","fk_classificador":"445","fator_cubagem":"4800","peso_real":"1","peso_cubado":"0","fk_fre_peso":"0","fk_fichario":"61440","transportadora":"N","preco_min":"0.00","gratis":"0","gratis_produtos":null,"exibir_estados":"0","imagem":null,"preco":"0.001","valor":"0.001"},{"peso":"49300","classificador":"Moto boy","fk_frete":"17","prazo":"Prazo de entrega 1 dia","fk_classificador":"151","fator_cubagem":"4800","peso_real":"1","peso_cubado":"0","fk_fre_peso":"0","fk_fichario":"60646","transportadora":"N","preco_min":"0.00","gratis":"0","gratis_produtos":null,"exibir_estados":"0","imagem":null,"preco":0.0319249,"valor":0.0319249},{"fk_frete":"27","classificador":"Trans. Jamef","prazo":"De 5 a 10 dias ap\u00f3s o envio","valor":223.54,"transportadora":null,"fk_classificador":null},{"peso":289260,"classificador":"Transportadora","fk_frete":"28","prazo":"Prazo de entrega 10 dias","fk_classificador":"405","fator_cubagem":"3333","peso_real":"1","peso_cubado":"1","fk_fre_peso":"0","fk_fichario":"56080","transportadora":"Y","preco_min":"0.00","gratis":"0","gratis_produtos":null,"exibir_estados":"0","imagem":null,"preco":0,"kiloadd":"1.000","valor":10.61}],"cidade":{"cidade":{"id":"6268","nome":"Londrina"},"estado":{"id":"17","nome":"Paran\u00e1","uf":"PR"}}}

そして、サーバーの応答は次のとおりです。

{"frete":[{"peso":"4000","classificador":"taxi","fk_frete":"5","prazo":"Prazo de entrega 10 dias","fk_classificador":"357","fator_cubagem":"4800","peso_real":"1","peso_cubado":"0","fk_fre_peso":"0","fk_fichario":"207","transportadora":"N","preco_min":"100.00","gratis":"0","gratis_produtos":null,"exibir_estados":"0","imagem":null,"preco":"11.000","valor":"11.000"},{"peso":10450,"classificador":"Trans. Braspress","fk_frete":"6","prazo":"Prazo de entrega 10 dias","fk_classificador":"837","fator_cubagem":"3333","peso_real":"1","peso_cubado":"1","fk_fre_peso":"0","fk_fichario":"773","transportadora":"Y","preco_min":"0.00","gratis":"0","gratis_produtos":null,"exibir_estados":"0","imagem":null,"preco":"3050.000","valor":"3050.000"},{"peso":7260,"classificador":"BYH","fk_frete":"9","prazo":"Prazo de entrega entre 15 a 35 dias \u00fateis","fk_classificador":"1760","fator_cubagem":"4800","peso_real":"1","peso_cubado":"1","fk_fre_peso":null,"fk_fichario":"786","transportadora":"N","preco_min":null,"gratis":"0","gratis_produtos":null,"exibir_estados":"0","imagem":null,"preco":"0.001","valor":"0.001"},{"valor":46.03,"prazo":"At\u00e9 8 dias ap\u00f3s o envio","cod":"41106","transportadora":"N","fk_frete":"1","classificador":"PAC"},{"valor":49.73,"prazo":"At\u00e9 7 dias ap\u00f3s o envio","cod":"40010","transportadora":"N","fk_frete":"2","classificador":"sedex"}],"cidade":{"cidade":{"id":"5895","nome":"Camb\u00e9"},"estado":{"id":"17","nome":"Paran\u00e1","uf":"PR"}}}

ここまではすべて OK です。

そう:

このオブジェクトを反復処理し、"frete" ごとに何かを行う必要があります。10分前まではすべて正常に機能していました。

今、私は何か他のものをテストしようとしていますが、このコードは何も変更せずに動作を停止しました.

私はコードをデバッグし、得たものは次のとおりです。

  for (var i = 0; i < frete['frete'].length; i++) {                 

ループに入らないだけです。何かあるかどうかを確認するfrete['frete'].lengthと、「未定義」と表示されます。

あまりにfrete.frete.lengthfrete.length未定義であり、未定義です。私はあなたが想像できるすべてを試しましたが、うまくいきません。

frete を確認すると[Object object]、おそらく JSON の問題であることがわかります。

すべての中で最も奇妙なことは、私のローカルホストでは動作し、Chrome を搭載したパートナーのコンピューターでは問題なく動作し、私のパートナーでは Firefox では動作しないことです。私のコンピューターでは、両方では動作しませんが、localhost では正常に動作します。よりよく説明するために、いくつかのスクリーンショットを取得しました。

ローカルホストでの作業: locahost

製品で動作しません:生産

動作中の firebug を確認してください: firebug

誰かが私にアイデアを教えてもらえますか?

4

2 に答える 2

1

PHP コードに問題があります。JSON応答がはっきりとわかります

あなたのlocalhost PHPは正しいようです。"Working on localhost: http://prntscr.com/1mzwgc " は JSON の "frete" キーに対して配列を提供しているのに対し、プロダクション ( http://prntscr.com/1mzw4w ) では "frete" キーに対する値はオブジェクト。「for-in ループ」以外のオブジェクトに対して、通常の「for ループ」は使用できません。

幸運を

于 2013-10-18T19:24:15.707 に答える
-2

私は単にあなたのjson結果を取得し、取得したばかりの「 obj 」という変数に保存しましたobj.yourkeyname.length

var obj = {
"frete": [
    {
        "peso": "49300",
        "classificador": "Retira",
        "fk_frete": "15",
        "prazo": "Prazo de entrega até 2 dias",
        "fk_classificador": "445",
        "fator_cubagem": "4800",
        "peso_real": "1",
        "peso_cubado": "0",
        "fk_fre_peso": "0",
        "fk_fichario": "61440",
        "transportadora": "N",
        "preco_min": "0.00",
        "gratis": "0",
        "gratis_produtos": null,
        "exibir_estados": "0",
        "imagem": null,
        "preco": "0.001",
        "valor": "0.001"
    },
    {
        "peso": "49300",
        "classificador": "Moto boy",
        "fk_frete": "17",
        "prazo": "Prazo de entrega 1 dia",
        "fk_classificador": "151",
        "fator_cubagem": "4800",
        "peso_real": "1",
        "peso_cubado": "0",
        "fk_fre_peso": "0",
        "fk_fichario": "60646",
        "transportadora": "N",
        "preco_min": "0.00",
        "gratis": "0",
        "gratis_produtos": null,
        "exibir_estados": "0",
        "imagem": null,
        "preco": 0.0319249,
        "valor": 0.0319249
    },
    {
        "fk_frete": "27",
        "classificador": "Trans. Jamef",
        "prazo": "De 5 a 10 dias após o envio",
        "valor": 223.54,
        "transportadora": null,
        "fk_classificador": null
    },
    {
        "peso": 289260,
        "classificador": "Transportadora",
        "fk_frete": "28",
        "prazo": "Prazo de entrega 10 dias",
        "fk_classificador": "405",
        "fator_cubagem": "3333",
        "peso_real": "1",
        "peso_cubado": "1",
        "fk_fre_peso": "0",
        "fk_fichario": "56080",
        "transportadora": "Y",
        "preco_min": "0.00",
        "gratis": "0",
        "gratis_produtos": null,
        "exibir_estados": "0",
        "imagem": null,
        "preco": 0,
        "kiloadd": "1.000",
        "valor": 10.61
    }
],
"cidade": {
    "cidade": {
        "id": "6268",
        "nome": "Londrina"
    },
    "estado": {
        "id": "17",
        "nome": "Paraná",
        "uf": "PR"
    }
}
}


alert(obj.frete.length);

結果を確認すると、4 になります。

于 2013-10-18T18:20:05.483 に答える