javascript - jquery中ajax的data为什么要JSON.stringify()
ringa_lee
ringa_lee 2017-04-11 12:25:18
[JavaScript讨论组]

我以前写ajax的时候都是这么写的,举个例子:

$.ajax({
    url: url,
    data: {
        limit: 10
    },
    type: 'post',
    dataType: 'json'
}),

我一直以为data是个对象,最近来到一家新公司,写了半天不对,后来同事告诉我这么写:

$.ajax({
    url: url,
    data: JSON.stringify({
        limit: 10
    }),
    type: 'post',
    dataType: 'json',
    contentType: 'text/plain'
}),

想问一下,data不是个对象吗?这样不就变成字符串了吗?data为什么要JSON.stringify()啊?为什么我以前那样写没问题呢?

ringa_lee
ringa_lee

ringa_lee

全部回复(4)
黄舟

你的写法就是一般的form表单形式
而你同事的写法是直接发送一个json字符串到服务器
两者在服务端的解析方法都不一样,谈不上谁对谁错

PHP中文网

看看文档~
http://api.jquery.com/jQuery....

data
Type: PlainObject or String or Array
Data to be sent to the server. It is converted to a query string, if not already a string. It's appended to the url for GET-requests. See processData option to prevent this automatic processing. Object must be Key/Value pairs. If value is an Array, jQuery serializes multiple values with same key based on the value of the traditional setting (described below).

其实比如像get请求,最终还是会被转换成url里的?key=value这种形式

大家讲道理

看一下原生JS的ajax就会知道

http://www.w3school.com.cn/aj...

其send参数是一个字符串,只是jQuery背后自动转换为了json字符串的格式。当我么自己封装ajax时,参数就看自己的实现了

巴扎黑

前端都可以写。 服务端接收写法问题

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号