君知否
2017-05-16 21:01:09
AJAX跨域问题解决方案
最近用Hbuilder开发一个简单的APP应用,登录、注册时调用后台的方法,结果出现了ajax跨域的访问,很纳闷怎么会跨域,于是又想起了度娘......
一共总结出三种方案:代理、JSONP、XHR2(XMLHttpRequest Level 2)。
第一种:jsonp
$.ajax({
type:"get",
url:"http://localhost:8080/login",/*url写异域的请求地址*/
dataType:"jsonp",/*加上datatype*/
jsonpCallback:"success_jsonpCallback",/*设置一个回调函数,名字随便取,和下面的函数里的名字相同就行*/
success:function(){
。。。
}
});
第二种:XMLHttpRequest Level 2
只需要在服务器端头部加上下面两句代码:
header( "Access-Control-Allow-Origin:*" ); //*代表可以访问的地址,可以设置指定域名
header( "Access-Control-Allow-Methods:POST,GET" );
这样在客户端使用常规的AJAX代码即可。
第三种:代理
这种方式是通过后台(ASP、PHP、JAVA、ASP.NET)获取其他域名下的内容,然后再把获得内容返回到前端,这样因为在同一个域名下,所以就不会出现跨域的问题。
亲测第一种,第二种可以实现,第三种没有测试。
评论
最近浏览
youwuzuichen LV10
2019年10月4日
hadoopCJ LV5
2019年9月25日
mq13947193109 LV19
2018年12月22日
kenpfang LV18
2018年3月15日
miaoshi LV16
2018年2月6日
wgc_jy LV21
2018年2月2日
zhizaideren LV2
2018年1月19日
无法激活 LV1
2017年11月22日
weienqing LV17
2017年11月17日
taojava LV3
2017年11月10日