你的位置:首页 > 软件开发 > Java > AJAX实现跨域的三种种方法(代理,JSONP,XHR2)

AJAX实现跨域的三种种方法(代理,JSONP,XHR2)

发布时间:2016-03-13 22:00:14
由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问。比如说你的网站域名是aaa.com,想要通过AJAX请求bbb.com域名中的内容,浏览器就会认为是不安全的,所以拒绝访问。会出现跨域问 ...

AJAX实现跨域的三种种方法(代理,JSONP,XHR2)

由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问。

比如说你的网站域名是aaa.com,想要通过AJAX请求bbb.com域名中的内容,浏览器就会认为是不安全的,所以拒绝访问。

会出现跨域问题的几种情况:

AJAX实现跨域的三种种方法(代理,JSONP,XHR2)

后台在百度上寻找解决方案解决了这个问题,一共总结出三种方案:代理、JSONP、XHR2(

第一种方法 代理:这种方式是通过后台(ASP、PHP、JAVA、ASP.NET)获取其他域名下的内容,然后再把获得内容返回到前端,这样因为在同一个域名下,所以就不会出现跨域的问题。

实现代码:创建一个AJAX请求(页面地址为:http://localhost/ajax/proxy.html)

  var request = null;  if(window.= new else{    request = new ActiveXObject("Microsoft.);  }  request.onreadystatechange = function(){    console.log(this.readyState);    if(this.readyState===4 && this.status===200){      var resultObj = eval("("+this.responseText+")");  //将返回的文本数据转换JSON对象      document.getElementById("box").innerHTML = resultObj.name+":"+resultObj.sex;  //将返回的内容显示在页面中    }  }  request.open("POST","proxy.php",true);  request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  request.send("name=吕铭印&sex=男");

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:AJAX实现跨域的三种种方法(代理,JSONP,XHR2)

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。