一、JSON
1、JSON的基本概念
JSON:JavaScript对象语法,是存储和交换文本信息的语法,类似XML。它采用键值对的方式来组织,易于人们阅读和编写,同时也易于机器解析和生成。JSON是独立于语言的,不管是什么语言,都可以解析json,只需要按照json的规则即可。
2、JSON与XML的对比
json的长度和xml相比,比较短小。
json读写的速度更快。
json可以使用javaScript内建的方法直接进行解析,转化为JavaScript对象,非常方便。
3、JSON的语法规则
JSON的数据书写格式是:名称/值对,名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样双引号中),中间使用冒号分割,比如:“name”:"卫庄",json的值可以是数值、字符串、布尔值、数组、对象、null。
4、JSON解析
解析JSON有两种方式,eval和JSON.parse。在代码中使用eval是不太严谨的,特别是用它执行第三方JSON数据(其中可能包含恶意代码)时,尽可能使用JSON.parse()方法解析字符串本身,该方法还可以捕捉JSON的语法错误。
二、跨域处理
1、什么是跨域?
当协议、域名、端口号中任意一个不相同时,都会造成跨域问题,不同域之间的互相请求,就是跨域。JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢?简单来说,就是因为JavaScript同源策略的限制,不同域名下的js不能相符操作。
2、跨域处理方法一---代理
通过在同域名的web服务器端创建一个代理:北京服务器(域名:www.beijing.com)广州服务器(域名:www.guangzhou.com),比如在北京的web服务器的后台(www.beijing.com/proxy-shanghaiservice.php)来调用广州服务器(www.guangzhou.com)的服务,然后把响应结果返回给前端,这样前端调用北京同域名的服务器和调用广州的服务器效果相同。
3、跨域处理方法二---jsonp
JSONP可以用于解决主流浏览器的跨域数据访问问题,只支持GET方式,不支持POST请求。
4、跨域处理方法三---XHR2
HTML提供的XMLHTTPRequest Level2已经实现了跨域访问以及其他以下新功能,但是IE10以下版本不支持,在服务端做以下改造即可:
header('Access-Control-Allow-Origin');
header('Access-Control-Allow-Methods':POST, GET);