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 事件队列调整方法
Sep 18 Javascript
setTimeout的延时为0时多个浏览器的区别
May 23 Javascript
js键盘事件的keyCode
Jul 29 Javascript
JQuery给网页更换皮肤的方法
May 30 Javascript
真正好用的js验证上传文件大小的简单方法
Oct 27 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
Nov 18 Javascript
通过命令行生成vue项目框架的方法
Jul 12 Javascript
Angular数据绑定机制原理
Apr 17 Javascript
微信小程序开发技巧汇总
Jul 15 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
Apr 27 Javascript
jQuery实现朋友圈查看图片
Sep 11 jQuery
小程序实现上下切换位置
Nov 16 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 选项及相关信息函数库
2006/12/04 PHP
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
js判断当前页面在移动设备还是在PC端中打开
2016/01/06 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
Python中Random和Math模块学习笔记
2015/05/18 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
浅谈python之新式类
2018/08/12 Python
实例讲解python中的协程
2018/10/08 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
Linux操作面试题
2015/02/11 面试题
护理专业自我鉴定
2014/01/30 职场文书
党校培训自我鉴定
2014/02/01 职场文书
个人先进事迹材料
2014/12/29 职场文书
vue使用echarts实现折线图
2022/03/21 Vue.js