为了账号安全,请及时绑定邮箱和手机立即绑定

如何在$ ajax POST中传递参数?

如何在$ ajax POST中传递参数?

慕姐8265434 2019-10-17 15:27:03
我已按照此链接中所述的教程进行操作。在下面的代码中,由于某种原因,数据不会作为参数附加到url上,但是如果我使用/?field1="hello"它直接将它们设置为url 则可以。$.ajax({        url: 'superman',        type: 'POST',        data: { field1: "hello", field2 : "hello2"} ,        contentType: 'application/json; charset=utf-8',        success: function (response) {            alert(response.status);        },        error: function () {            alert("error");        }    }); 
查看完整描述

3 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

Jquery.ajax不会像对GET数据那样自动为您编码POST数据。jQuery希望您的数据经过预格式化,以附加到请求正文中,以直接通过网络发送。


一种解决方案是使用jQuery.param函数来构建查询字符串,大多数处理POST请求的脚本都希望使用该字符串。


$.ajax({

    url: 'superman',

    type: 'POST',

    data: jQuery.param({ field1: "hello", field2 : "hello2"}) ,

    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',

    success: function (response) {

        alert(response.status);

    },

    error: function () {

        alert("error");

    }

}); 

在这种情况下,该param方法会将数据格式化为:


field1=hello&field2=hello2

该Jquery.ajax文档中说,有一个叫标志processData控制该编码是否是自动还是没有这样做。该文档说它默认为true,但这不是我在POST使用时观察到的行为。


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 7303 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信