JS-ajax
2017-05-09 本文已影响0人
这很重要吗
json解析##
Paste_Image.png Paste_Image.pngeval不检查数据是否合法
json.pasrse检查数据是否合法
在线json格式化校验工具:jsonlint.com
Paste_Image.pngeval不会执行数据的检查,直接执行alert语句
JSON.parse()会报错,更加的安全
请求方法改进:
1、服务器端返回JSON字符串:header("Content-Type:application/json;charset=utf-8");
2、服务器端所有返回值写成JSON格式;
Paste_Image.png Paste_Image.png3、客户端解析JSON字符串:
JSON.parse(xhr.responseText)
跨域##
跨域概念###
javaScript处于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢,简单地理解就是因为javaScript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象
域名地址的组成###
Paste_Image.png除了服务端地址的改变叫做重定向以外,其他几个可变更的参数中任意一个的改变就叫做跨域。
Paste_Image.png
HTTP默认访问80端口
HTTPS默认访问443端口
处理跨域的几种方法###
1. 代理(属于后台的技术)###
Paste_Image.png Paste_Image.png2. JSONP###
Paste_Image.pngJSONP只支持get请求,不支持post请求
实现:
前端
更改的地方
Paste_Image.png Paste_Image.png
服务端
获取 jsonp
改变返回的值
jq自动增加了一个参数
Paste_Image.png
服务端返回的值
Paste_Image.png重点在于:同源策略 + <script>的src不属于同源策略 + 通过<script>的src指向的文件返回服务器端数据。
3.XMLHttpRequest Level2###
Paste_Image.png所有支持xhr2的服务器都可以实现跨域,只需要去更改服务端
可以参考:http://www.cnblogs.com/wangfupeng1988/p/4060747.html
http://www.cnblogs.com/laneyfu/p/6544452.html