首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON.stringify()还是通过ajax发布的数据的默认url编码?

JSON.stringify()还是通过ajax发布的数据的默认url编码?
EN

Stack Overflow用户
提问于 2014-07-11 21:53:38
回答 1查看 2.2K关注 0票数 0

在使用JSON.stringify()函数时,使用jQuery.ajax发布复杂对象与简单地允许数据的默认url编码有什么不同或优势?我发布的MVC WebApi能够正确地路由和解析两个请求,因此不需要向服务器发送JSON。此外,由于在服务器上启用了CORS,所以发布json会发出一个飞行前选项请求(据我所知,why...that不是我的问题),而使用默认编码则不会,从而节省了一个从性能角度来看“似乎”有利的网络调用。

这两个ajax调用都可以工作。我用一个同时包含嵌入式子对象和嵌入式数组的对象进行了测试:

代码语言:javascript
复制
var item = {
    Name: "Joe", 
    Team: "Yankees", 
    Vitals: { Age: 21, Height: "6'0" }, 
    Positions: ["1st", "Right", "DH"]};

// using default url-encoding
$.post(apiUri, item)
.done(function () {alert("Done");})
.fail(function () {alert("Fail");});

// posting a json string
$.ajax({
    url: apiUri,
    contentType: "application/json",
    data: JSON.stringify(item),
    type: "POST"
})
.done(function () {alert("Done");})
.fail(function () {alert("Fail");});

然而,许多ajax到web示例似乎倾向于将数据作为json字符串发布。

指导方针还是建议?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-11 22:06:58

使用JSON.stringify()发布JSON与使用jQuery.ajax函数对数据进行默认url编码有什么不同或优势?

由于您缺少了内容类型,这实际上是不太可比的。换句话说,将JSON发布为x-www-form-urlencoded根本不起作用。因此,我将调整你的问题,使之更加具体:

使用JSON.stringify()将内容类型设置为application/json的JSON与使用jQuery.ajax函数的数据的默认url编码(x-www-form-urlencoded/Querystring)相比有什么区别或优势?

在我看来(但仍然是事实),最大和最有益的优势是,当您使用JSON而不是Form Querystring时,正确地使用默认模型绑定将值绑定到类所需的工作量是最小的。假设web使用与MVC相同的模型绑定(我非常肯定它使用),绑定表单值可以是很乏味,很难调试。在张贴简单的名称值对时,情况往往不是这样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24707166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档