我有这样的代码:
$.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"}}}在此之前一切都还好。
所以:
我需要迭代这个对象,并为每个"frete“做一些事情。直到10分钟前一切都很顺利。
现在我正在尝试测试其他的东西,而这段代码在没有任何改变的情况下就停止了工作。
我调试了代码,得到的结果是:
for (var i = 0; i < frete['frete'].length; i++) { 它只是没有进入循环。当我检查frete['frete'].length是否有什么东西时,我会得到“未定义”。
所以frete.frete.length也没有定义,frete.length也没有定义,我尝试了所有你能想象到的东西,但是它不起作用。
如果我检查frete,就会得到[Object object],所以这可能是JSON中的一个问题。
最奇怪的是,在我的本地主机上,它能工作,在我搭档的电脑上,Chrome运行得很好,而对我的搭档来说,它对火狐不起作用。在我的计算机上,它不能同时在两种情况下工作,但是在本地主机上工作得很好。我有几张屏幕截图要解释得更清楚:
在本地主机上工作:藏红花
不适用于产品:生产
检查运行中的firebug:火虫
谁能给我点主意吗?
发布于 2013-10-18 19:24:15
PHP代码中的问题。我能清楚地看到你对JSON的回应
您的本地主机PHP似乎是正确的。因为“使用localhost:http://prntscr.com/1mzwgc”是针对JSON中的"frete“键提供数组,而在生产( http://prntscr.com/1mzw4w)中,针对"frete”键的值是一个对象。除了"for-in循环“之外,不能对对象使用普通的"for循环”。
祝好运
发布于 2013-10-18 18:20:05
我只是将您的json结果存储在一个名为'obj‘的变量中。
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。
https://stackoverflow.com/questions/18411305
复制相似问题