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 相关文章推荐
Javascript 调试利器 Firebug使用详解六
Jul 05 Javascript
JSQL 基于客户端的成绩统计实现方法
May 05 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
Jan 23 Javascript
javascript继承的六大模式小结
Apr 13 Javascript
jQuery解析json数据实例分析
Nov 24 Javascript
jquery+html仿翻页相册功能
Dec 20 Javascript
jquery实现左右滑动式轮播图
Mar 02 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
Sep 02 Javascript
vue element upload实现图片本地预览
Aug 20 Javascript
javascript合并两个数组最简单的实现方法
Sep 14 Javascript
uni-app 支持多端第三方地图定位的方法
Jan 03 Javascript
JS实现烟花爆炸效果
Mar 10 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
综合图片计数器
2006/10/09 PHP
ThinkPHP分页实例
2014/10/15 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
php实现的http请求封装示例
2016/11/08 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
Prototype使用指南之range.js
2007/01/10 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
浅谈Angular路由复用策略
2017/10/04 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
WiFi云数码相框:Nixplay
2018/07/05 全球购物
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
裁员通知
2015/04/25 职场文书
格林童话读书笔记
2015/06/30 职场文书
歌咏比赛口号大全
2015/12/25 职场文书