weixin_33735077 2018-05-20 14:52 采纳率: 0%
浏览 21

Jquery Deferred + Ajax

Can anyone tell me why this will not update the data object in the AJAX? If I have multiple features in the geojson, it tends to only save one of the features records when looping through all the geojson features. So if geojsonFeatures has 3 records, 3 records will be pushed into ajaxDeferred but the data will be the same for all three records.

data: { id: updatedLayerGeojsonId, table: updatedLayerGeojsonTable, geom: updatedLayerGeojsonGeometry }

var geojsonFeatures = geojson.features;
var ajaxDeferred = [];

for(var a = 0; a < geojsonFeatures.length; a++){
updatedLayerGeojson = geojsonFeatures[a].geometry;
        updatedLayerGeojson.crs =  {
          "type": "name",
          "properties": {
            "name": "epsg:4326"
            }
         };
        updatedLayerGeojsonGeometry = JSON.stringify(updatedLayerGeojson);
        updatedLayerGeojsonId = geojsonFeatures[a].properties.gid;
        updatedLayerGeojsonTable = geojsonFeatures[a].properties.layer_table;

        ajaxDeferred.push(
            $.ajax({
                url: window.location.origin + '/csrfToken',
                success: function(response) {
                      $.ajax({
                          url: '/maplayers/saveEditedLayerRecord',
                          type:"post",
                          data: {
                            id: updatedLayerGeojsonId,
                            table: updatedLayerGeojsonTable,
                            geom: updatedLayerGeojsonGeometry
                          },
                           beforeSend: function(xhr, settings){
                              xhr.setRequestHeader('X-CSRF-Token', response._csrf);
                          },
                          success: function(data){
                            if(data){
                                numberOfEditedLayersCompleted++;
                                if(numberOfEditedLayers == numberOfEditedLayersCompleted){
                                    removeLayers();
                                    editableLayers.clearLayers();
                                    editedLayer = false;
                                    numberOfEditedLayers = 0;
                                    numberOfEditedLayersCompleted = 0;
                                }
                            }

                          },
                          cache: false
                        });
                    }
                })
        );
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥100 支付宝网页转账系统不识别账号
    • ¥15 基于单片机的靶位控制系统
    • ¥15 AT89C51控制8位八段数码管显示时钟。
    • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
    • ¥15 下图接收小电路,谁知道原理
    • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
    • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
    • ¥15 手机接入宽带网线,如何释放宽带全部速度
    • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
    • ¥15 ETLCloud 处理json多层级问题