AJAX学习(4)---JSON与跨域处理

一、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);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章