最近整理代码,发现一些ajax dataType 属性值设置的问题。下面直接上代码说明下

前台ajax请求

$.ajax({
type: "get",
dataType: "json",
url:url,
data: {},
success: function (data) {
console.log(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.log(XMLHttpRequest);
console.log(textStatus);
console.log(errorThrown);
}
});

注意这里dataType设置的是 json

后台逻辑处理及返回

方式一:

    @ResponseBody
public String getCode() {
return "test";
}

方式二:

   @ResponseBody
public String getCode() {
return "123456";
}

最后测试的结果是方式一会报错,方式二正常

方式一报错情况:

经过查询资料发现,dataType:json

是将响应通过JSON.parse(响应数据)转化为javaScript对象

对于String类型的数据通过JSON.parse()进行转换是需要用“”括起来才能正确解析的

下面是几组测试

看到这个结果,我认为应该是JSON.parse 会默认进行数据类型转换,比如Boolean、Integer等

所以为了避免解析异常,还是严格按照dataType支持的类型根据实际需要配置

如果只是需要纯文本,dataType就配置为 'text'

dataType 属性可用值:

参考链接:

http://www.w3school.com.cn/jquery/ajax_ajax.asp

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

【问题记录】ajax dataType属性的更多相关文章

  1. 商品类型的下拉框绑定一个事件,通过ajax获取属性

    html代码这么写 <!-- 商品属性 --> <table cellspacing="1" cellpadding="3" width=&q ...

  2. <target>.ID 和 <source>.ID 的属性冲突: DataType 属性不匹配

    ORACLE数据库主键的数据类型为number ,如果不指定长度会有 Merge报 <target>.ID 和 <source>.ID 的属性冲突: DataType 属性不匹 ...

  3. jquery中ajax的dataType属性包括哪几项

    参考ajax api文档:http://www.w3school.com.cn/jquery/ajax_ajax.asp dataType类型:String预期服务器返回的数据类型.如果不指定,jQu ...

  4. Dynamics CRM2016 Web API之更新记录的单个属性字段值

    在web api中提供了对单个属性的更新接口,这和查询中查询单个属性类似,对这个接口我个人也是比较喜欢的. var id = "{D1E50347-86EB-E511-9414-ADA183 ...

  5. ajax data属性传值的方式总结

    在和后台同事对接口的时候,有一个小问题一直困扰着我.那就是用ajax请求后台接口数据,需要用data属性传值的时候,data属性传值的方式感觉没有统一用一种方式. 后来仔细想想,其实哪种方式都可以,主 ...

  6. $.ajax dataType设置为json 回调函数不执行

    请求方式如下: $.xpost = function (url, data) { return $.ajax({ url: url, type: "POST", dataType: ...

  7. Ajax的属性

    1.属性列表 url:     (默认: 当前页地址) 发送请求的地址. type:  (默认: "GET") 请求方式 ("POST" 或 "GET ...

  8. jquery easyui ajax data属性传值方式

    $.ajax({   url:url,   type:'post',   data:data,   dataType:'json',   contentType: "application/ ...

  9. ajax对象属性withCredentials

    默认情况下,ajax跨源请求不提供凭据(cookie.HTTP认证及客户端SSL证明等).通过将设置ajax的withCredentials属性设置为true,可以指定某个请求应该发送凭据.如果服务器 ...

随机推荐

  1. embedded database (H2, HSQL or Derby), please put it on the classpath

    Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded data ...

  2. centos7安装Mysql爬坑记录

    centos7安装Mysql爬坑记录   查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装 ...

  3. CCNA-Part5 - 传输层 ,TCP 为什么是三次握手?

    传输层 传输层主要的作用就是建立端到端的连接.比如电脑的微信的通信,就需要跨越多个网络设备(交换机和录取)再和微信的服务器建立连接. 传输层需要具有以下的特点: 会话的多复用:如电脑上开启的多个应用, ...

  4. Quartz.Net系列(十一):System.Timers.Timer+WindowsService实现定时任务

    1.创建WindowsService项目 2.配置项目 3.AddInstaller(添加安装程序) 4.修改ServiceName(服务名称).StartType(启动类型).Description ...

  5. Python math 、cmath

    1.math dir(math) 2.cmath 复数运算

  6. 使用Xshell的rz命令上传文件失败的解决方法

    使用Xshell的rz命令上传文件失败的解决方法 第一种:在home目录下rz上传文件失败,如下: 原因:当前用户不具备权限解决:用 sudo rz 上传即可成功 第二种:对于文件大的rz上传失败的话 ...

  7. python数据处理(三)之处理pdf文件

    代码以及资料 https://github.com/jackiekazil/data-wrangling 1.前言 尽可能地寻找可以替代pdf格式的数据 2.解析pdf的编程方法 安装slate pi ...

  8. scrapy 基础组件专题(五):自定义扩展

    通过scrapy提供的扩展功能, 我们可以编写一些自定义的功能, 插入到scrapy的机制中 一.编写一个简单的扩展 我们现在编写一个扩展, 统计一共获取到的item的条数我们可以新建一个extens ...

  9. 数据可视化之powerBI基础(十九)学会使用Power BI的参数,轻松搞定动态分析

    https://zhuanlan.zhihu.com/p/55295072 静态的分析经常不能满足实际分析的需要,还需要引入动态分析,通过调节某个维度的增减变化来观察对分析结果的影响.在PowerBI ...

  10. 数据可视化实例(十三): 发散型文本 (matplotlib,pandas)

    偏差 (Deviation) https://datawhalechina.github.io/pms50/#/chapter11/chapter11 发散型文本 (Diverging Texts) ...