一,HTTP小记:
理解RESTful,了解项目风格,阮一峰博客http://www.ruanyifeng.com/blog/2014/05/restful_api
在network中查看每一次请求和响应过程。
请求方法:GET,POST,PUT,DELETE,HEAD,TRACE,CONNECT,OPTIONS
请求主体:只有POST,PUT请求有主体。形式1:uname = tony&age=12; 形式2:文件上传。形式3:JSON。
响应状态码:1XX——提示性信息,2XX——成功,3XX——重定向(客户端请求的地址到其他地方去了),4XX——客户端出错,5XX——服务端出错。
www.ietf.org查看http标准。
二,Ajax小记:
有同步和异步请求。
方法:1.原生AJAX,
var xhr= new XMLHttpRequest();
xhr.onreadystatechange = function(){
}
xhr.open();
xhr.send();
2. Jquery 的Ajax
$.ajax({
type: ,
url: ,
data: ,
success: fn ,
error: fn,
beforeSend:fn,
complete:fn
})
三,跨域问题
跨域:Cross Domain,指从一个URL上的资源访问另一个URL上的资源,这两个资源不在同一个域上。域名|协议名|端口号不同。
浏览器允许跨域的情况:
带src和href属性的标签,如:script,img,link
浏览器禁止跨域的情况:
所有浏览器默认禁止xhr对象跨域请求——处于“同源安全策略”。
如何绕过浏览器跨域限制?
CORS方案:在被访问的资源响应中设置响应头部
header("Access-Control-Allow-Orign:http://127.0.0.1");允许从指定的域名发送跨域请求。
JSONP方案:使用JSON数据的方式。
思路:使用动态创建的script标签代替XHR发起异步请求,获取跨域数据,在本地的js中加以处理。
<script async="true" src = "跨域地址/x.php"></script>
<script>
function doResponse(data){
//处理data中的数据。。。
}
</script>
服务器返回的数据形如:
Content-Type:application/jacascript
doResponse{x:y,a:b};