我想将Json发布到同一服务器上的web服务.但我不知道如何使用JQuery发布Json.我try 过以下代码:

$.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.或者换句话说,它是"urlended"数据,而不是Json.

Is there any way to post the data in Json format instead of urlencoded data using JQuery? Or do I have to use a manual ajax request?

推荐答案

您正在传递一个对象,not一个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'
});

Jquery相关问答推荐

在添加_renderMenu方法时,是什么原因导致jQuery UI AutoComplete抛出TypeError?

我正在try 使用 Jquery 打开与帖子相关的特定 comments

如何在外部JS文件中使用带有参数的laravel路由

jQuery在点击函数后获取
  • 元素的id/value
  • foreach for JSON 数组,语法

    如何以十六进制获取元素的背景 colored颜色 代码?

    如何使用 jQuery Select 所有复选框?

    .trigger() 与 .click() 中的 jQuery 优势/差异

    如何在循环内创建动态变量名称?

    用按钮切换显示/隐藏div?

    JQuery手风琴自动高度问题

    jQuery增量读取AJAX流?

    将输入更改为大写

    如何获取文档的滚动位置?

    如何重新启用 event.preventDefault?

    从附加元素获取 jQuery 对象的更简单方法

    jQuery ajax 成功回调函数定义

    Backbone.js - 事件,知道点击了什么

    如何使用 jQuery Validation Plugin 以编程方式判断表单是否有效

    如何在 jquery 中获取 textarea 的值?