1

I have this code:

 $.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++) {               

This code return to me it(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"}}}

And here is the response of the server:

{"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"}}}

Until here everything is OK.

So:

I need to iterate this object and for each "frete" do something. Everything was working fine until 10 minutes ago.

Now I'm trying to test something else, and this code just stopped working without any change.

I debug the code and what I got was:

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

It just doesn't enter the loop. When I check if frete['frete'].length has something, I get "Undefined".

So frete.frete.length undefined too, and frete.length is undefined, I've tried everything you can imagine, and it just doesn't work.

If I check frete, I get [Object object] so probably it is an issue in JSON.

The strangest thing of all is, on my localhost it works, on my partner's computer with Chrome it works just fine, and for my partner, it doesn't work with Firefox. On my computer, it doesn't work on both, but on localhost it works fine. I got some screen shots to explain better:

Working on localhost: locahost

Doesn't working on product: production

Check the firebug in action: firebug

Can someone give me some idea?

4

2 回答 2

1

您的 PHP 代码有问题。我可以清楚地看到你的 JSON 响应

您的本地主机 PHP 似乎是正确的。因为“在本地主机上工作: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 回答