jQuery跨域问题解决方案


Posted in Javascript onAugust 03, 2015

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

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

//路径处理

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

//处理函数

exports.test=function(req,res){

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

};

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

//处理函数

<script>

    function method(data){

        console.log(data);

    }

</script>

//跨域访问

<script src="http://localhost:3000/test"></script>

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

jQuery跨域问题解决方案

jQuery中JSONP跨域访问的实现:

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

//路径处理
app.get("/test",user.test);
//处理函数
exports.test=function(req,res){
 res.end("method("+JSON.stringify({mes:"跨域访问成功!"})+")");
};
 外部有一个网页需要访问路径”/test“下的内容,通过JSONP来实现跨域访问:

//引入跨域访问中的jQuery函数库
<script src="http://localhost:3000/js/jquery-1.9.1.min.js"></script>
//jQuery中JSONP跨域访问
<script>
  $.ajax({
    url:"http://localhost:3000/test",
    type:"get",
    success:function(data){
      $("body").append(data.mes);
    },
    dataType:"jsonp",
    jsonpCallback:"method"
  });
</script>

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

jQuery跨域问题解决方案

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

JSONP跨域访问的优点:

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

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

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

JSONP跨域访问的缺点:

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

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

Javascript 相关文章推荐
jquery keypress,keyup,onpropertychange键盘事件
Jun 25 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
Mar 10 Javascript
非主流的textarea自增长实现js代码
Dec 20 Javascript
JavaScript中使用document.write向页面输出内容实例
Oct 16 Javascript
运用jQuery定时器的原理实现banner图片切换
Oct 22 Javascript
超链接怎么正确调用javascript函数
May 23 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
Dec 08 Javascript
JS 中document.write()的用法和清空的原因浅析
Dec 04 Javascript
vue单页缓存方案分析及实现
Sep 25 Javascript
Vue自定义全局Toast和Loading的实例详解
Apr 18 Javascript
vue打包时去掉所有的console.log
Apr 10 Vue.js
javascript实现超炫的向上滑行菜单实例
Aug 03 #Javascript
提高jQuery性能优化的技巧
Aug 03 #Javascript
jquery简单实现幻灯片的方法
Aug 03 #Javascript
JS拖拽插件实现步骤
Aug 03 #Javascript
javascript实现的淘宝旅行通用日历组件用法实例
Aug 03 #Javascript
javascript简单实现类似QQ头像弹出效果的方法
Aug 03 #Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
Aug 03 #Javascript
You might like
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
js变换显示图片的实例
2013/04/16 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
Python中shape计算矩阵的方法示例
2017/04/21 Python
Python实现excel转sqlite的方法
2017/07/17 Python
Python微信库:itchat的用法详解
2017/08/14 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
使用python实现飞机大战游戏
2020/03/23 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
浅析python中的del用法
2020/09/02 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
物业工作计划书
2014/01/10 职场文书
计划生育个人总结
2015/03/02 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书