Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax之前的每个处理_Javascript_Jquery_Ajax_Each_Synchronous - Fatal编程技术网

Javascript Ajax之前的每个处理

Javascript Ajax之前的每个处理,javascript,jquery,ajax,each,synchronous,Javascript,Jquery,Ajax,Each,Synchronous,我有一个Javascript(Jquery)函数,它迭代表单中的输入元素,严格地将数组组装成JSON,然后将其发布到AJAX端点。each是在AJAX调用之后运行的,我不确定在each之后调用AJAX端点最常用的方法是什么 我的职能: function FormHandler() { var data = []; $("form#myForm :input").each(function () { var input = $(this); var

我有一个Javascript(Jquery)函数,它迭代表单中的输入元素,严格地将数组组装成JSON,然后将其发布到AJAX端点。each是在AJAX调用之后运行的,我不确定在each之后调用AJAX端点最常用的方法是什么

我的职能:

function FormHandler() {
    var data = [];
    $("form#myForm :input").each(function () {
        var input = $(this);
        var field_key = input[0]['name'].substr(4);
        var value = input[0]['value'];
        data[field_key] = value;
        console.log(data);
    });
    $.ajax({
        dataType: "json",
        url: 'https://myendpoint.xxx/v1/' + pathname,
        type: 'POST',
        data: {'data': JSON.stringify(data)},
        success: function (thisdata) {
            console.log(thisdata);
        }
    });
};
调用此AJAX会发送一个JSON格式的空数据数组,但foreach中的控制台日志会显示数据元素在每次循环中按下一个输入值增长。我曾尝试将AJAX调用放在函数中,放在每个函数的第一个函数之后,但这不起作用


谢谢您的提示。

您需要将
var data=[]
更改为
var data={}

在每个循环中,您将属性添加到一个数组中,而
JSON.stringify
不起作用。

您需要将
var data=[]
更改为
var data={}

在每个循环中,您都将属性添加到一个数组中,而
JSON.stringify
对此不感兴趣。

您是否尝试过在迭代开始之前和之后添加跟踪。您发布的代码中唯一的异步部分是ajax执行。您可以使用formdata对象或serialize或SerializeArray,只需在post中发送,而无需Stringify。您是否尝试在迭代开始之前和之后添加跟踪。您发布的代码中唯一的异步部分是ajax执行。您可以使用formdata对象或serialize或SerializeArray,只需在post中发送,而无需stringify