我有以下代码:
$.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++) {
此代码返回给我它(本地主机):
{"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.length
也未定义,而frete.length
也未定义,我已经尝试了您可以想象的一切,但它根本无法正常工作。如果我检查frete,则会得到
[Object object]
,所以可能是JSON中的问题。最奇怪的是,在我的本地主机上它可以运行,在我的伙伴的装有Chrome的计算机上也可以正常工作,而对于我的伙伴,它不能在Firefox上运行。在我的计算机上,这两种方法均不能同时使用,但在localhost上则可以正常使用。
我有一些屏幕截图可以更好地解释:
在本地主机上工作:locahost
不适用于产品:production
检查运行中的萤火虫:firebug
有人可以给我一些想法吗?
最佳答案
您的PHP代码有问题。我可以清楚地看到您的JSON响应
您的本地主机PHP似乎正确。因为“在localhost上工作:http://prntscr.com/1mzwgc”在JSON中针对“ frete”键提供了数组,而在生产环境(http://prntscr.com/1mzw4w)中,针对“ frete”键的值却是一个对象。除“ for-in循环”外,您不能对对象使用常规的“ for循环”
祝好运