5种处理js跨域问题方法汇总


Posted in Javascript onDecember 04, 2014

前两天碰到一个跨域问题的处理,使用jsonp可以解决。(https://3water.com/article/57889.htm)

最近再整理了一下:

1.jsonp。

   ajax请求,dataType为jsonp。这种形式需要请求在服务端调整为返回callback([json-object])的形式。如果服务端返回的是普通json对象。那么调试的时候,在chrome浏览器的控制台会报"Uncaught SyntaxError: Unexpected token"错误;在firefox浏览器的控制台会报"SyntaxError: missing ; before statement"错误。

2.iframe跨域。

   页面中增加一个iframe元素,在需要调用get请求的时候,将iframe的src设置为get请求的url即可发起get请求的调用。

var url = "http://xxx.xxx.xxx?p1=1&p2=2";

$("#iframe").attr("src", url);//跨域,使用iframe

iframe方式强于jsonp,除了可以处理http请求,还能够跨域实现js调用。

3.script元素的src属性处理

   iframe、img、style、script等元素的src属性可以直接向不同域请求资源,jsonp正是利用script标签跨域请求资源的简单实现,所以这个和jsonp本质一样,同样需要服务端请求返回callback...形式。

var url="http://xxx.xxx.xxx?p1=1";

var script = document.createElement('script');

script.setAttribute('src', url);

document.getElementsByTagName('head')[0].appendChild(script);

4.在服务器使用get处理。

   对于业务上没有硬性要求在前端处理的,可以在服务端做一次封装,再服务端发起调用,这样就可以解决跨域的问题。然后再根据请求是发出就完,还是需要获取返回值,来决定代码使用同步或者异步模式。

        private static void CreateGetHttpResponse(string url, int? timeout, string userAgent, CookieCollection cookies)

        {

            if (string.IsNullOrEmpty(url))

            {

                throw new ArgumentNullException("url");

            }

            var request = WebRequest.Create(url) as HttpWebRequest;

            request.Method = "GET";

            if (!string.IsNullOrEmpty(userAgent))

            {

                request.UserAgent = userAgent;

            }

            if (timeout.HasValue)

            {

                request.Timeout = timeout.Value;

            }

            if (cookies != null)

            {

                request.CookieContainer = new CookieContainer();

                request.CookieContainer.Add(cookies);

            }

            request.BeginGetResponse(null,null);//异步

            //return request.GetResponse() as HttpWebResponse;

        }

5.flash跨域

过于尖端了==,再研究

总结:以上5种方法就是常见的解决js跨域问题的处理方法了,最后一种比较高端,等我研究清楚了再补上吧。

Javascript 相关文章推荐
jquery ready函数源代码研究
Dec 06 Javascript
Jquery自定义button按钮的几种方法
Jun 11 Javascript
jQuery对JSON数据进行排序输出的方法
Jun 24 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
Aug 13 Javascript
jQuery右下角悬浮广告实例
Oct 17 Javascript
Vue.js实现一个todo-list的上移下移删除功能
Jun 26 Javascript
JS数组交集、并集、差集的示例代码
Aug 23 Javascript
使用Bootrap和Vue实现仿百度搜索功能
Oct 26 Javascript
基于Vue中点击组件外关闭组件的实现方法
Mar 06 Javascript
webpack 样式加载的实现原理
Jun 12 Javascript
vue实现可视化可拖放的自定义表单的示例代码
Mar 20 Javascript
详解用js代码触发dom事件的实现方案
Jun 10 Javascript
用js读、写、删除Cookie代码续篇
Dec 03 #Javascript
js字符串完全替换函数分享
Dec 03 #Javascript
基于jquery实现等比缩放图片
Dec 03 #Javascript
javascript简单实现图片预加载
Dec 03 #Javascript
3种Jquery限制文本框只能输入数字字母的方法
Dec 03 #Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
Dec 03 #Javascript
javascript中clone对象详解
Dec 03 #Javascript
You might like
在php和MySql中计算时间差的方法
2011/04/22 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
分享php多功能图片处理类
2016/05/15 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
js字符编码函数区别分析
2008/06/05 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
jQuery Ajax 全局调用封装实例代码详解
2016/06/02 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
js中null与空字符串""的区别讲解
2019/01/17 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
Python全排列操作实例分析
2018/07/24 Python
python 同时运行多个程序的实例
2019/01/07 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
Python 监测文件是否更新的方法
2019/06/10 Python
Django实现分页显示效果
2019/10/31 Python
python3.8下载及安装步骤详解
2020/01/15 Python
Python 文件数据读写的具体实现
2020/01/24 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
Oracle快照(snapshot)
2015/03/13 面试题
网站编辑求职信
2013/10/17 职场文书
集团薪酬管理制度
2014/01/13 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
2016年社区文体活动总结
2016/04/06 职场文书