Javascript 通过ajax向nodejs服务器发送json数组时出现问题
我将通过AJAX发送到我的服务器节点JS,在客户端使用此JS: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
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'