javascript - Chrome 中的 Jquery Ajax 请求有什么问题?

标签 javascript php jquery ajax google-chrome

我使用以下代码向 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/

相关文章:

jquery - 如何让 child 100% 的屏幕

javascript - 如何更改视频标签的转发时间

javascript - 对包装 slickgrid 的 Angular Directive(指令)进行单元测试

php - 自定义验证消息: Laravel 5. 2.15

php - 用于 MAC OSX 的非基于 Java VM 的 PHP/JS IDE?

jquery - 具有接触边界的 div 网格 - 停止加倍

javascript - 引导模式中的 Angularjs 多选下拉列表

javascript - 如何使用 javascript 或任何 JS 库关闭 filePicker 的窗口?

php - 防止sql注入(inject)的最佳实践是什么

javascript - 如何验证 HTML5 日期格式