1丶原生ajax请求:
第一步
var xhr=new XMLHttpRequest();
第二步
xhr.open('GET,‘http://www.com’,true)
第一个参数:请求方式
第二个参数:url地址
第三个参数:是同步异步请求,true是异步,false是同步
第三步是请求头信息
xhr.setRequestHeader(‘Content-Type’, ‘application/x-www-form-urlencoded’)
GET请求可以不设置头信息,POST请求必须设置头信息
第四步是发送send请求
xhr.send(’’)
发送send请求方式
最后一步
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
console.log(xhr.responseText);
var res=JSON.parse(xhr.responseText);
console.log(res);
}
4是请求完成
200是请求成功的状态码
responseText是数据,必须是字符串类型,不是的转换成字符串类型
2丶jsonp原理
ajax 请求受同源策略影响,不允许进行跨域请求,我们利用 script 标签的 src 属性不受同源策略的约束,利用这个特性jsonp需要以下步骤:
- 动态创建添加到页面中执行
- 页面要提前定义好callback。
- 端会返回回调函数执行并包裹参数callback(data)
$.get("http://169.254.200.238:8080/jsonp.do", function (data) {
console.log(data);
});
这样会报错
然后我们可以使用script来进行跨域
<script type="text/javascript" src="http://169.254.200.238:8080/jsonp.do">
</script>
3丶CORS请求
CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。
前端只需要发送个请求即可,主要是后端处理
res.setHeader("Access-Control-Allow-Origin","http://127.0.0.1:3003");