首页 > 其他分享 >$.ajax 中的contentType

$.ajax 中的contentType

时间:2023-04-27 10:01:54浏览次数:48  
标签:contentType 复杂 JSON json application ajax

$.ajax contentType 和 dataType , contentType 主要设置你发送给服务器的格式,dataType设置你收到服务器数据的格式。

在http 请求中,get 和 post 是最常用的。在 jquery 的 ajax 中, contentType都是默认的值:application/x-www-form-urlencoded,这种格式的特点就是,name/value 成为一组,每组之间用 & 联接,而 name与value 则是使用 = 连接。如: wwwh.baidu.com/q?key=fdsa&lang=zh 这是get , 而 post 请求则是使用请求体,参数不在 url 中,在请求体中的参数表现形式也是: key=fdsa&lang=zh的形式。

键值对这样组织在一般的情况下是没有什么问题的,这里说的一般是,不带嵌套类型JSON,也就是 简单的JSON,形如这样:

{

a: 1,

b: 2,

c: 3

}

但是在一些复杂的情况下就有问题了。 例如在 ajax 中你要传一个复杂的 json 对像,也就说是对象嵌数组,数组中包括对象,兄果你这样传:

{

data: {

a: [{

x: 2

}]

}

}

这个复杂对象, application/x-www-form-urlencoded 这种形式是没有办法将复杂的 JSON 组织成键值对形式(当然也有方案这点可以参考 ) ,你传进去可以发送请求,但是服务端收到数据为空, 因为 ajax 没有办法知道怎样处理这个数据。

这怎么可以呢?

聪明的程序员发现 http 还可以自定义数据类型,于是就定义一种叫 application/json 的类型。这种类型是 text , 我们 ajax 的复杂JSON数据,用 JSON.stringify序列化后,然后发送,在服务器端接到然后用 JSON.parse 进行还原就行了,这样就能处理复杂的对象了。

$.ajax({

dataType: 'json',

contentType: 'application/json',

data: JSON.stringify({a: [{b:1, a:1}]})

})

这样就可以发送复杂JSON的对象了。

标签:contentType,复杂,JSON,json,application,ajax
From: https://www.cnblogs.com/zhaofen/p/17358090.html

相关文章

  • ajax中responseText与responseXML区别
    源:http://lou888.blog.hexun.com/46543491_d.html评:一、ajax中responseText与responseXML区别1、"responseText”属性以字符串形式返回HTTP响应;“responseXML”属性以XML形式返回HTTP响应。functiongetTel(){vartelText=document.getElement......
  • nginx解决Ajax跨域问题
    今天遇到一个ajax跨域问题,下拉框的数据源要从一个接口获得,但是该接口被部署到另外一台服务器上,在本地可以通过http请求访问,并可以返回json的数据,但是放到页面中不可以获取到下拉框的值,发现chrome控制台中该请求成功,但是没有返回值,于是便遇到了跨域的问题,请教一同事,问题得到解决:1.搭......
  • jquery ajax dataType有哪些
    预期服务器返回的数据类型。如果不指定,jQuery将自动根据HTTP包MIME信息来智能判断,比如XMLMIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:•"xml":......
  • AJAX概述
    1、什么是Ajax1.Ajax(AsynchronousJavaScriptAndXML)翻译成中文就是“异步JavaScript和XML”。即使用JavaScript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。2.Ajax还有一个最大的特点就是,当服务器响应时,不用刷新整个浏览器页面,而是可以局部刷新。这一特......
  • ajax中ff下无错,ie6下中文乱码的解决方法[转]
    contentType:"application/x-www-form-urlencoded;charset=UTF-8",ajax中加入上面的代码,防止在IE6下传递的参数出现中文乱码$.ajax({ type:"post", contentType:"application/x-www-form-urlencoded;charset=UTF-8", async:false,......
  • jQuery Ajax 实例 详细介绍$.ajax、$.post、$.get的使用
    Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦需要处理浏览器之间的兼容问题,Jquery大大简化了我们的这些操作操作,不用在考虑浏览器这方面的问题,可以直接使用!$.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一、$.ajax的一般格式$.ajax({......
  • jq中使用ajax传值到后台
    <script>functiononSubmitPlus(issave){varprojectid=$("#field_40282aa18708cb1301871197556b011b").val();varprojectmgrdep=$("#field_40282aa18708cb1301871196a1a70118").val();//项目负责人的所属部门//varoldpr......
  • java 用ajax java后台传回值
       用ajaxjava后台传回值,包括传json publicstaticfinalvoidsendAsJson(HttpServletResponseresponse,Stringstr){response.setContentType("application/json;charset=UTF-8");if(null!=str)try{response.getWriter().write(st......
  • 03-Ajax传输json和XML
    title:03-Ajax传输json和XMLpublish:trueAjax传输JSONJSON的语法JSON(JavaScriptObjectNotation):是ECMAScript的子集。作用是进行数据的交换。语法更为简洁,网络传输、机器解析都更为迅速。语法规则:数据在键值对中数据由逗号分隔花括号保存对象方括号......
  • ajax-jquery
    1、介绍jquery支持ajax,需要导入jsqury库后使用。<scriptsrc="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">2、loadload()方法从服务器加载数据,并把返回的数据放入被选元素中$(selector).load(URL,data,callback);selector:元素选择器url:希望加载的数据来......