ajax

1、 ajax:异步的javascriptxml,核心对象为XMLHttpRequest.

XMLHttpRequest属性如下

 

 

XMLHttpRequest方法如下

 

 

<div id='show'></div>

<script type="text/javascript">

//创建XMLHttpRequest对象

var xhr = new XMLHttpRequest();

//注册回调方法

xhr.onreadystatechange = callback;

//设置和服务器交互的参数

xhr.open('GET','data.txt',true);

//向服务器发送请求

xhr.send(null);

//定义回调处理服务端响应信息

function callback(){

if(xhr.readyState==4){

if(xhr.status==200){

var d = document.getElementById('show');

d.innerHTML=xhr.responseText;

}

}

}

 

</script>

 

 

 

跨域问题的处理:拥有src”这个属性的标签都拥有跨域的能力,比如<script><img><iframe>

方式一

 

跨域资源共享(Cross-Origin Resource Sharing, CORS)

在服务端的响应头中设置

header("Access-Control-Allow-Origin:*");

 /*星号表示所有的域都可以接受,*/

header("Access-Control-Allow-Methods:GET,POST");

 

方式二

script标签src实现跨域

通过document.createElement("script")实现。

<script type="text/javascript">

    var script = document.createElement('script');

    script.type='text/javascript';

    script.src='http://127.0.0.1:8080/data.txt';  

    script.setAttribute('id', "zz");

    var oHead = document.getElementsByTagName('HEAD').item(0);

    oHead.appendChild(script);

</script>

 

方式三

jsonp:JSON with padding,是JSON的 一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。

Jquery jsonp

 

$.ajax({

type:'get',

dataType:'jsonp',

async:false,

url:'http://127.0.0.1:8080/data.txt',

success:function(data){

 

},

error:function(){

 

}

});

 

 

 

 

restfull api

http://www.ruanyifeng.com/blog/2014/05/restful_api.html

posted @ 2017-11-06 07:19  胖鱼嘉义  阅读(180)  评论(0编辑  收藏  举报