我在这里有点困惑,我正在尝试使用以下代码将数据发布到我的节点js服务器:
$.ajax({type:'POST',
url:'/map',
data:'type=line&geometry='+str,
success:function(msg)
{
console.log(msg);
},
datatype:'json'
});
这是结果:
{ type: 'line', geometry: 'b~cqCge{b[mv|q@xnyC' }
这不是JSON。我以前曾尝试使用contentType
并按照以下方式执行此操作:
$.ajax({type:'POST',
url:'/map',
data:{type:'line',geometry:str},
success:function(msg)
{
console.log(msg);
},
datatype:'json',
contentType:"application/json"
});
即使这样也没有任何变化发送数据。我也尝试使用第一个数据字符串的上述方法。我也尝试将processData
设置为false
以及中的方法。代码块。
我必须将数据放在JSON
并使用AJAX
,因为我正在尝试insert into mongodb from node js using mongojs and it fails
答案 0 :(得分:7)
实际上dataType
与输入无关,而是输出。
相反,您想要的是将输入data
字符串化,然后将其作为单个变量发送到您的后端,然后可以对其进行解码:
$.ajax({type:'POST',
url:'/map',
data: {data: JSON.stringify({type: 'line', geometry: str})},
success:function(msg)
{
console.log(msg);
},
dataType:'json'
});
在你的后端,你只需解码data
,它现在应该是JSON中一个功能齐全的对象。
请注意,您需要JSON类,默认情况下JQuery不包含此功能:https://github.com/douglascrockford/JSON-js
答案 1 :(得分:2)
我遇到了同样的问题,NodeJS API后端正在接收Undefined
request.body。
我是如何通过调用AJAX来解决的:
$.ajax({
url: serviceURL,
data: JSON.stringify(jsonData),
dataType: 'json',
type: 'POST',
contentType: 'application/json',
success: response => console.log(response),
error: e => console.log(e)
});
请注意,我必须同时提及contentType: 'application/json'
和dataType: 'json'
。另请注意,有效负载JSON数据需要JSON.stringify
。
答案 2 :(得分:1)
使用dataType
代替datatype
,注意 T
是Type
中的资本,
dataType:'json',
试试这个,
$.ajax({
type:'POST',
url:'/map',
data:{type:'line',geometry:str},
dataType:'json',// use dataType not datatype
success:function(msg) {
console.log(msg);
}
});
答案 3 :(得分:1)
Url = "http://example.com";
var postData = $('#selectorid').serialize();
$.ajax({
type: 'POST',
data: postData+'&FormType=InsertForm',
url: Url,
success: function(data){
//console.log(data);
},
error: function(){
//console.log(data);
alert('There was an error in register form');
}
});
在php中发布所有值。 请试一试。
答案 4 :(得分:0)
试试这个
$.ajax({ type: 'POST',
url: '/map',
data: {type:"line",geometry : str},
success: function (msg) {
console.log(msg);
},
dataType: 'json'
});
与@Rohan Kumar提到的一样,将datatype
替换为dataType
答案 5 :(得分:0)
我也遇到过这个问题,但这段代码解决了我的问题:
$.ajax({
method: 'POST',
type: "POST",
url: "/admin/get-message-details",
data: {"messageId":messageId},
success: function(){
}
});
顺便说一下,从客户端到服务器的数据以字符串的形式传输。因此,您可以以 JSON 结构准备和发送数据。