jq跨域代理_jQuery跨域问题解决方案

本文详细介绍了如何使用jQuery的JSONP技术解决跨域问题。通过后台设置及前端jQuery代码示例,展示了JSONP如何实现跨域访问,并讨论了其优缺点。在示例中,后台定义了处理路径`/test`的函数,前端通过`$.ajax`调用,利用JSONP自动创建的回调函数获取并展示跨域数据。
摘要由CSDN通过智能技术生成

通过XMLHTTPRquest请求不同域上的数据,原来js跨域访问是后台有个处理路径“/test”的函数。下面把具体解决方案介绍如下。

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

//路径处理

app.get("/test",user.test);

//处理函数

exports.test=function(req,res){

res.end("alert('JS跨域访问')");

};

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

//处理函数

function method(data){

console.log(data);

}

//跨域访问

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

jQuery中JSONP跨域访问的实现:

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

//路径处理

app.get("/test",user.test);

//处理函数

exports.test=function(req,res){

res.end("method("+JSON.stringify({mes:"跨域访问成功!"})+")");

};

外部有一个网页需要访问路径”/test“下的内容,通过JSONP来实现跨域访问:

//引入跨域访问中的jQuery函数库

//jQuery中JSONP跨域访问

$.ajax({

url:"http://localhost:3000/test",

type:"get",

success:function(data){

$("body").append(data.mes);

},

dataType:"jsonp",

jsonpCallback:"method"

});

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

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

JSONP跨域访问的优点:

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

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

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

JSONP跨域访问的缺点:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值