如何使用JQuery发布JSON数据?

如何使用JQuery发布JSON数据?

我想把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服务器接收name=jonas..换句话说,它是“urlencode”数据,而不是Json。

有没有办法用JSON格式发布数据,而不是使用JQuery进行用户编码的数据?还是必须使用手动Ajax请求?


翻阅古今
浏览 358回答 3
3回答

犯罪嫌疑人X

你在传递一个物体,不JSON字符串。传递对象时,jQuery使用$.param若要将对象序列化为名称-值对,请执行以下操作。如果将数据作为字符串传递,则不会序列化:$.ajax({     type: 'POST',     url: '/form/',     data: '{"name":"jonas"}', // or JSON.stringify ({name: 'jonas'}),     success: function(data) { alert('data: ' + data); },     contentType: "application/json",     dataType: 'json'});

当年话下

我创建了一个jpost它包含了某些参数。$.extend({     jpost: function(url, body) {         return $.ajax({             type: 'POST',             url: url,             data: JSON.stringify(body),             contentType: "application/json",             dataType: 'json'         });     }});用法:$.jpost('/form/', { name: 'Jonh' }).then(res => {     console.log(res);});

叮当猫咪

删除contentType,不要对json数据进行编码$.fn.postJSON = function(url, data) {     return $.ajax({             type: 'POST',             url: url,             data: data,             dataType: 'json'         });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery