建筑 ajax post 与 jQuery each()

Building ajax post with jQuery each()

我正在从 excel 中提取数据,我想通过 coldfusion CFC 将该数据插入到数据库中。除了这次我动态构建 ajax 的 "data" 部分外,我一直这样做。发生的事情是,当我查看 URL 字符串时,它没有添加我在 var xData 中构建的表单数据。一切看起来都正确,但数据并未传送到 CFC。提前谢谢你

小欧内斯特·佩纳

这是我的代码:

    $.each(formulas, function(i) {
        var xData ='';
        var x = Object.keys(formulas[i]).length
        var y = 0;
        $.each(formulas[i], function(index,value) {
            var c = ''
            y++
            if(y!=x){var c = ','}
            xData += index+':'+value+''+c
        });
        $.ajax({type: "POST",url: "CFCs/"+tblName+".cfc?method="+tblName+"_FORMULA_ADD", dataType: "json",data:{xData},

            success: function(response){
                console.log(response)
            },
            error: function(response){
                console.log(response)
            }
        });
    });

结果:

查询字符串参数查看源码查看URL编码

方法: WAIS4_FORMULA_ADD

表单数据查看源码查看URL编码

xData:SCALED_SCORE:8,DDID:2581,AGE_START:16,AGE_END:17,RAW_SCORE_START:34,RAW_SCORE_END:36 ,ENTEREDBYID:156936,DATEENTERED:4/23/15,VERSION:1

{xData}不会将字符串xData的内容解析为键值对。您应该直接在 $.each 循环中构建对象,而不是字符串。

xData = {};
$.each(formulas[i], function(index, value) {
    xData[index] = value;
});

然后在 AJAX 调用中使用 data: xData

但是上面的循环所做的只是复制formulas[i]。您可以简单地使用 data: formulas[i]