最近调查一个浏览器兼容性问题,在 IE, chrome下都运行正常,但是在 firefox 下运行时:

$.parseJson(xxx) 返回 null,所以导致了 无法正常运行,调查的结果是因为 返回是,没有使用下面的语句定义返回值的类型:

response.setContentType("text/html; charset=utf-8");

导致了 firefox 以为返回的 是 xml 数据(alert时弹出 xml object),导致 $.parseJson(xx) 对返回的数据进行解析成 json 时返回了 null.

其实 后端返回 json 格式的数据一般而言有三种方法:

1.

response.setContentType("text/html; charset=utf-8");

然后 客户端使用 $.parseJson(xx) 进行解析成 json 对象;

2.

response.setContentType("text/javascript");

此时,浏览器自动调用自带的 JSON.parse(xxx) 函数自动 将字符流解析成 json 对象。不需要我们自己使用 $.parseJson(xx) 去解析,我直接将结果当初 json 对象使用就行了。

PS:

response.setContentType("text/javascript");

结果其实 是设置了 http 协议 的头部信息,然后 浏览器就可以根据 头部信息,自动调用 JSON.parse() 函数解析成 json 对象,给我们使用。

熟悉http的一些基本原理,还是比较有帮助的,能够从深层次上理解问题。

3.

response.setContentType("application/json")

3和2直接的区别就是 json 和 js 代码的区别。json是js的一个子集。

随机推荐

  1. Macaca自动化测试之Android测试

    Macaca PC端 Web自动化测试非常类似于Selenium,而移动端自动化测试非常类似于Appium,如果你搭建过Appium环境,Macaca移动端环境的搭建将非常简单. 本文继承上一篇,关于 ...

  2. wordpress上传图片时重命名--修改插件时遇到的一些问题

    wordpress是用php语言开发的博客平台,它扩展性强,容易扩展,很适合拿来做二次开发. 1,问题由来 本周五,我在浏览公司的网站(基于wordpress开发)时发现,网站首页上有两篇文章的缩略图 ...

  3. 小白Linux入门 四

    http://edu.51cto.com/lesson/id-11372.html 28了 文件管理类命令 目录: mkdir mkdir /tmp/x mkdir -p /tmp/a/b -pv b ...

  4. JS正则表达式总结

    关于JS的正则用法,已经有很多文章了,大同小异 正则表达式30分钟入门教程 MDN正则表达式 玩转JavaScript正则表达式 ES6正则的扩展

  5. Xamarin.Android之Splash的几种简单实现

    对现在的APP软件来说,基本上都会有一个Splash页面,类似大家常说的欢迎页面.启动界面之类的. 正常来说这个页面都会有一些相关的信息,比如一些理念,Logo,版本信息等 下面就来看看在Xamari ...

  6. 黑社会团伙(gangs)

    题目描述 众所周知,香港的黑社会组织猖獗,警方希望能摸清他们的内部构成情况,特派小生前往调查.经过长期的卧底,小生初步获得了一些资料:整个组织有 n 个人,任何两个认识的人不是朋友就是敌人. 而且满足 ...

  7. Mule入门基础

    Mule入门文档 零.前提 在按照本文进行操作之前,假设您的系统已经具备以下前提: 已经安装了Sun公司的JDK1.4或JDK5.0版本,推荐使用JDK5.0. 正确设置了JAVA_HOME环境变量到 ...

  8. Hadoop多节点集群安装配置

    目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...

  9. python基础之正则表达式

    正则表达式语法 正则表达式 (或 RE) 指定一组字符串匹配它;在此模块中的功能让您检查一下,如果一个特定的字符串匹配给定的正则表达式 (或给定的正则表达式匹配特定的字符串,可归结为同一件事). 正则 ...

  10. C程序范例(2)——学生管理系统”链表“实现

    1.对于学生管理系统,能够实现的方法有许多,但是今天我们用链表的方法来实现.虽然初学者很可能看不懂,但是不要紧,这是要在整体的系统的学习完C语言之后,我才编写出的程序.所以大家不必要担心.在这里与大家 ...