我想将Json发布到同一服务器上的Web服务。但我不知道如何使用JQuery发布Json。我试过这个代码:
$.ajax({
type: 'POST',url: '/form/',data: {"name":"jonas"},success: function(data) { alert('data: ' + data); },contentType: "application/json",dataType: 'json'
});
但是使用这个JQuery代码,数据不会作为Json在服务器上接收。这是服务器上的预期数据:{“name”:“jonas”},但是使用JQuery服务器接收名称= jonas。或者换句话说,它是“urlencoded”数据而不是Json。
有什么办法以Json格式发布数据,而不是使用JQuery的urlencoded数据?或者我必须使用手动ajax请求吗?
解决方法
您传递的是对象,而不是JSON字符串。当你传递一个对象时,jQuery使用
$.param将对象序列化为名称 – 值对。
如果将数据作为字符串传递,则不会将其序列化:
$.ajax({
type: 'POST',data: '{"name":"jonas"}',// or JSON.stringify ({name: 'jonas'}),dataType: 'json'
});