HTTP协议,ajax小记

一,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};

猜你喜欢

转载自blog.csdn.net/u012183426/article/details/80258763