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 相关文章推荐
JXTree对象,读取外部xml文件数据,生成树的函数
Apr 02 Javascript
jquery中ajax学习笔记一
Oct 16 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 Javascript
实例分析javascript中的call()和apply()方法
Nov 28 Javascript
node.js中的fs.rename方法使用说明
Dec 16 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
Jan 13 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
BootStrap 附加导航组件
Jul 22 Javascript
vue.js表格组件开发的实例详解
Oct 12 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
Dec 05 Javascript
jQuery实现文章图片弹出放大效果
Apr 06 jQuery
bootstrap下拉框动态赋值方法
Aug 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
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
Cython 三分钟入门教程
2009/09/17 Python
浅谈Python中的数据类型
2015/05/05 Python
python实现聚类算法原理
2018/02/12 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
python如何实现图片压缩
2020/09/11 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
个人自荐信
2013/12/05 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
作风建设年活动总结
2014/08/27 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
民事纠纷协议书
2016/03/23 职场文书
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS