JS-ajax

json解析##

eval不检查数据是否合法
json.pasrse检查数据是否合法
在线json格式化校验工具:jsonlint.com

JS-ajax_第1张图片
Paste_Image.png
JS-ajax_第2张图片
Paste_Image.png

eval不会执行数据的检查,直接执行alert语句
JSON.parse()会报错,更加的安全

JS-ajax_第3张图片
Paste_Image.png

请求方法改进:
1、服务器端返回JSON字符串:header("Content-Type:application/json;charset=utf-8");

JS-ajax_第4张图片
Paste_Image.png

2、服务器端所有返回值写成JSON格式;

JS-ajax_第5张图片
Paste_Image.png
Paste_Image.png

3、客户端解析JSON字符串:
JSON.parse(xhr.responseText)

JS-ajax_第6张图片
Paste_Image.png

跨域##

跨域概念###

javaScript处于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢,简单地理解就是因为javaScript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象

域名地址的组成###

JS-ajax_第7张图片
Paste_Image.png

除了服务端地址的改变叫做重定向以外,其他几个可变更的参数中任意一个的改变就叫做跨域。


JS-ajax_第8张图片
Paste_Image.png

主域名相同,子域名(可能是多级子域名)

JS-ajax_第9张图片
Paste_Image.png

HTTP默认访问80端口
HTTPS默认访问443端口

处理跨域的几种方法###

1. 代理(属于后台的技术)###

JS-ajax_第10张图片
Paste_Image.png
Paste_Image.png

2. JSONP###

JSONP只支持get请求,不支持post请求

JS-ajax_第11张图片
Paste_Image.png

实现:
前端
更改的地方


Paste_Image.png
JS-ajax_第12张图片
Paste_Image.png

服务端
获取 jsonp

Paste_Image.png
JS-ajax_第13张图片
jsonp

改变返回的值


jq自动增加了一个参数


Paste_Image.png

服务端返回的值

Paste_Image.png

重点在于:同源策略 +

你可能感兴趣的:(JS-ajax)