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

如何用$.ajax代替查询字符串发送JSON?

如何用$.ajax代替查询字符串发送JSON?

桃花长相依 2019-07-09 12:40:05
如何用$.ajax代替查询字符串发送JSON?有人能简单地解释一下如何让jQuery发送实际的JSON而不是查询字符串吗?$.ajax({     url      : url,     dataType : 'json', // I was pretty sure this would do the trick     data     : data,     type     : 'POST',     complete : callback // etc});实际上,这将精心准备的JSON转换为查询字符串。最烦人的是array: []在您的对象中将被转换为array[]: [],可能是由于查询绑定的限制。
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

你需要用JSON.stringify首先将对象序列化为JSON,然后指定contentType所以你的服务器明白这是JSON。这应该能起作用:

$.ajax({
    url: url,
    type: "POST",
    data: JSON.stringify(data),
    contentType: "application/json",
    complete: callback});

注意,JSON对象在支持JavaScript1.7/ECMAScript 5或更高版本的浏览器中本机可用。如果需要遗留支持,可以使用json 2.


查看完整回答
反对 回复 2019-07-09
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

不,dataType期权用于解析接收到的数据。

要发布JSON,您需要自己通过JSON.stringify并设置processData选择false.

$.ajax({
    url: url,
    type: "POST",
    data: JSON.stringify(data),
    processData: false,
    contentType: "application/json; charset=UTF-8",
    complete: callback});

注意,并非所有浏览器都支持JSON对象,尽管jQuery有.parseJSON,它没有包含字符串;您将需要另一个多填充库。


查看完整回答
反对 回复 2019-07-09
  • 3 回答
  • 0 关注
  • 576 浏览
慕课专栏
更多

添加回答

举报

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