Javascript 通过ajax向nodejs服务器发送json数组时出现问题

Javascript 通过ajax向nodejs服务器发送json数组时出现问题,javascript,json,ajax,node.js,Javascript,Json,Ajax,Node.js,我将通过AJAX发送到我的服务器节点JS,在客户端使用此JS: function login(){ var array=[]; var jsonData={}; jsonData.user=$('#user').val(); jsonData.pass=$('#pass').val(); array.push(jsonData); console.log(JSON.stringify(array)); $.ajax({ me

我将通过AJAX发送到我的服务器节点JS,在客户端使用此JS:

function login(){
    var array=[];
    var jsonData={};
    jsonData.user=$('#user').val();
    jsonData.pass=$('#pass').val();
    array.push(jsonData);
    console.log(JSON.stringify(array));
    $.ajax({
        method:'POST', 
        url: 'auth',
        dataType: 'application/json',
        data: JSON.stringify(array)
    }).done(function(msg){
        alert( "Data Saved: " + msg );
    });
}
如您所见,在发送ajax之前,浏览器输出控制台是:

[{"user":"User001","pass":"SecretPassword"}]
在服务器端,我有以下代码:

router.post('/', function(req, res, next){
    console.log(req.body); 
    // { '[{"user":"User001","pass":"SecretPassword"}]': '' }

    console.log(JSON.parse(req.body));   
    // {"[{\"user\":\"User001\",\"pass\":\"SecretPassword\"}]":""}


    res.sendStatus(202);
}
但是,如果我使用Postman测试此web服务,我的服务器将正确接收Json数据:


请,有人帮我吗???,我大约两天就解决了这个问题:(

不要串接数据,它应该是一个对象,所以你可以直接发送jsonData:

function login(){
    var array=[];
    var jsonData={};
    jsonData.user=$('#user').val();
    jsonData.pass=$('#pass').val();
    array.push(jsonData);
    console.log(JSON.stringify(array));
    $.ajax({
        method:'POST', 
        url: 'auth',
        dataType: 'application/json',
        data: jsonData // << here
    }).done(function(msg){
        alert( "Data Saved: " + msg );
    });
}
函数登录(){
var数组=[];
var jsonData={};
jsonData.user=$('#user').val();
jsonData.pass=$('#pass').val();
array.push(jsonData);
log(JSON.stringify(array));
$.ajax({
方法:'POST',
url:'auth',
数据类型:“应用程序/json”,

数据:jsonData/不要字符串化数据,它应该是一个对象,所以您可以直接发送jsonData:

function login(){
    var array=[];
    var jsonData={};
    jsonData.user=$('#user').val();
    jsonData.pass=$('#pass').val();
    array.push(jsonData);
    console.log(JSON.stringify(array));
    $.ajax({
        method:'POST', 
        url: 'auth',
        dataType: 'application/json',
        data: jsonData // << here
    }).done(function(msg){
        alert( "Data Saved: " + msg );
    });
}
函数登录(){
var数组=[];
var jsonData={};
jsonData.user=$('#user').val();
jsonData.pass=$('#pass').val();
array.push(jsonData);
log(JSON.stringify(array));
$.ajax({
方法:'POST',
url:'auth',
数据类型:“应用程序/json”,
数据:jsonData/var invoiceJson={name:“abc”}

var invoiceJson={name:“abc”}


如果您发送的是json,则应将内容类型设置为json是的,是的。请参阅第一个代码片段:dataType:“application/json”,这不是内容类型,dataType是一个非常复杂的问题。已解决:)如果您发送的是json,则应将内容类型设置为json是的,是的。请参阅第一个代码片段:dataType:“application/json”,这不是内容类型,dataType是一个非常复杂的问题。已解决:)不,我试过了,但无法解决问题。答案是:在ajax调用中的contentType:'application/json;charset=utf-8',我试过了,但无法解决问题。答案是:在ajax调用中的contentType:'application/json;charset=utf-8'