我使用以下代码向 PHP 脚本发出请求:
$.ajax({
method: "POST",
url: "myAPI.php",
data: {
orderById: 2,
action: 'returnStuff',
},
success: function(data){
$.each(data.data, function(key, value) {
var $targetToMove = $('.shape.'+value.attr_name);
//if element already exists on page, move it to the end of the container
if($('.'+value.xml_name).length){
$('.container').append($targetToMove);
}
});
}
});
这是我的返回数据的简化示例
{"data":{"0":{"id":"1","name":"This","color":"blue"},
"1":{"id":"2","name":"That","color":"red"},
"2":{"id":"3","name":"whatever","color":"blue"}}}
如果 orderById 等于 1,则按 id 从最低到最高的顺序返回数据。如果它等于 2,则按从最高到最低的顺序返回数字,如下所示:
{"data":{"0":{"id":"3","name":"whatever","color":"blue"},
"1":{"id":"2","name":"That","color":"red"},
"2":{"id":"1","name":"This","color":"blue"}}}
这个想法是 API 按照我想要的顺序返回数据,然后在 ajax 调用成功时,元素会按照返回的数据对象的顺序在页面上重新排列。
这在 Firefox 中按照我的预期工作,但在 Chrome 中,每当我在控制台成功记录数据时,顺序始终相同,尽管控制台指示我的 API 的响应顺序正确。
我错过了什么?我无法判断这是一个缓存问题还是我只是忽略了 javascript 中的某些内容。
最佳答案
JavaScript 中不保证
Object
属性顺序。您宁愿使用Array
来实现
关于javascript - Chrome 中的 Jquery Ajax 请求有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34216810/