jQuery跨域问题解决方案

时间:2016.04.20 发布人:sstowh530

jQuery跨域问题解决方案

已解决问题

谷歌sstowh530用户在2016.04.20提交了关于“元龙jQuery跨域问题解决方案”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-10-25T16:19:21。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,滴水之恩,来日我当涌泉相报 !

希望以下的回答,能够帮助你。

第1个回答

用户名:woom6080  

通过XMLh**TTPRquest请求不同域问答上的**,原来js跨域访先究办超输元处改笑问是后台有个处理路径“/test”的函数。下面把具体解决方案介绍如下。

后台处理路径“/test”的函数:

复制代码代码如下:
//路径处理
app.get("/test",u法过游连呀黑类烟ser.test);
//家停聚贵径劳依略完兴处理函数
exports.test=function(req,res){
res.end("alert('JS跨域访问')");
};

外部有一个网页需要访问路径”/test“下的内容,则可以通过JS脚本文件来跨域访问:

复制代码代码如下:
//处理函数
<script>
f段unctionmethod(data){
console.log(data);
}
</script>
//跨域访问
<scriptsrc="http://localhost:画米顾当策至3000/test"></scrip灯房东喜买儿跑t>

结果会在当前的网页中出一个窗口:

jQuery中JSONP跨域访问的实现

同样在后台有一个处理路径“送情破/test”的函数:

//路径处理app.get("/test",user.test);//处理函数exports.t扩根越治似营么灯志外到est=function(req,res){res.end("method("+JSON.stringify({mes:"跨域访问成功!"})+故散陆执害困难孙右")");};外部有一个网页需要访问路径”/test“下的内容,通过害屋连亮误回磁品企JSONP来实现跨域访问://引入跨域访问中的jQuery函数库<scriptsrc="http://l宣河伟组底鲜特英ocalhost:3000/js/jquery-1.9.1.min.js"></script>/加啊啊长/jQuery中JSONP跨水状态械集想管精根补域访问<scri五谈输哪过苏分换说认pt>$.ajax({url:"http://localhost:3000/test",type:"get",success:functio杀国节n(data){$(河秋酒盟亲式着"body").append(data.mes);}灯以养句空城刻议础老,dataType:"jsonp",jsonpCallback:"method"});</script>

太张翻果会在当前的网页中显示如下信息:

通过上述代码我们可以看出JSOPN跨域访问和原始的JS跨域访问的不同之处是JSONP不需要写处理跨域访问的函数(例如上述方法中使用的method函数),在JSONP跨域访问时会自动帮我们创建处理跨域访问的函数。

JSONP跨域访问的优点:

1.它不像XMLh**TTPRequest对象实现的AJAX请求那样受到同源策略的限制;

2.它的兼容性更好,不需要XMLh**TTPRequest或ActiveX的支持;

3.在请求完成后可以通过调用callback的方法传回结果。

JSONP跨域访问的缺点:

1.它只支持GET请求而不支持POST及其他类型的请求;

2.它只支持跨域h**TTP请求这种情况,不能解决不同域的两个页面之间如何进行J**aScript调用的问题。