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错误的解决方案
Aug 07 Javascript
node.js中的emitter.on方法使用说明
Dec 10 Javascript
JS版元素周期表实现方法
Aug 05 Javascript
浅谈Web页面向后台提交数据的方式和选择
Sep 23 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
Nov 03 Javascript
BootStrap Fileinput初始化时的一些参数
Dec 30 Javascript
webpack踩坑之路图片的路径与打包
Sep 05 Javascript
AngularJS 表单验证手机号的实例(非必填)
Nov 12 Javascript
vue绑定的点击事件阻止冒泡的实例
Feb 08 Javascript
JS实现字符串翻转的方法分析
Aug 31 Javascript
AngularJS 监听变量变化的实现方法
Oct 09 Javascript
手把手15分钟搭一个企业级脚手架
Sep 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不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
浅谈React高阶组件
2018/03/28 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
Vue性能优化的方法
2020/07/30 Javascript
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
python实现简易动态时钟
2018/11/19 Python
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
国际经济贸易专业推荐信
2013/11/06 职场文书
宣传普通话标语
2014/06/27 职场文书
结对共建协议书
2014/08/20 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
公司借条范本
2015/05/25 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书