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 相关文章推荐
document.compatMode介绍
May 21 Javascript
Javascript中valueOf与toString区别浅析
Mar 19 Javascript
浅谈javascript属性onresize
Apr 20 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
Aug 27 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
Nov 02 Javascript
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
微信小程序之swiper滑动面板用法示例
Dec 04 Javascript
JS学习笔记之数组去重实现方法小结
May 29 Javascript
微信小程序自定义波浪组件使用方法详解
Sep 21 Javascript
vue微信分享插件使用方法详解
Feb 18 Javascript
微信小程序实现翻牌抽奖动画
Sep 21 Javascript
详解TS数字分隔符和更严格的类属性检查
May 06 Javascript
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
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
利用JS做网页特效_大图轮播(实例讲解)
2017/08/09 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
Python程序运行原理图文解析
2018/02/10 Python
python实现简单多人聊天室
2018/12/11 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
python多进程间通信代码实例
2019/09/30 Python
python里反向传播算法详解
2020/11/22 Python
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
会计专业毕业生自我评价
2013/09/25 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
求职面试个人自我评价
2014/02/28 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
助学贷款贫困证明
2014/09/23 职场文书
离婚民事起诉状
2015/08/03 职场文书