最近用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)获取其他域名下的内容,然后再把获得内容返回到前端,这样因为在同一个域名下,所以就不会出现跨域的问题。
亲测第一种,第二种可以实现,第三种没有测试。
相关文章
暂无评论...