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 相关文章推荐
优化网页之快速的呈现我们的网页
Jun 29 Javascript
JavaScript面向对象编程入门教程
Apr 16 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
Jun 09 Javascript
jQuery新的事件绑定机制on()示例应用
Jul 18 Javascript
JavaScript数组前面插入元素的方法
Apr 06 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
Oct 15 Javascript
基于jquery实现五星好评
Nov 18 jQuery
JS实现的对象去重功能示例
Jun 04 Javascript
Vue使用Proxy监听所有接口状态的方法实现
Jun 07 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
Sep 20 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
Dec 12 Javascript
springboot+VUE实现登录注册
May 27 Vue.js
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
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
深入浅析search 搜索框的写法
2016/08/02 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
tornado框架blog模块分析与使用
2013/11/21 Python
Web服务器框架 Tornado简介
2014/07/16 Python
python中sleep函数用法实例分析
2015/04/29 Python
Python网络编程 Python套接字编程
2017/09/13 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
使用matplotlib画散点图的方法
2018/05/25 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
物理系毕业生自荐信
2013/11/01 职场文书
精细化工应届生求职信
2013/11/17 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
2015年电工工作总结
2015/04/10 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书