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 相关文章推荐
由document.body和document.documentElement想到的
Apr 13 Javascript
JavaScript 保存数组到Cookie的代码
Apr 14 Javascript
jquery隐藏标签和显示标签的实例
Nov 11 Javascript
JS中完美兼容各大浏览器的scrolltop方法
Apr 17 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
Dec 14 Javascript
JS中dom0级事件和dom2级事件的区别介绍
May 05 Javascript
JS代码实现根据时间变换页面背景效果
Jun 16 Javascript
JS验证不重复验证码
Feb 10 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
Feb 12 Javascript
原生js实现公告滚动效果
Jan 10 Javascript
详解微信小程序之提高应用速度小技巧
Jan 07 Javascript
Nuxt的路由动画效果案例
Nov 06 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获取当前url的具体方法全面解析
2013/11/26 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
javascript alert乱码的解决方法
2013/11/05 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
在Python中使用模块的教程
2015/04/27 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
python怎么提高计算速度
2020/06/11 Python
Python扫描端口的实现
2021/01/25 Python
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
商务英语求职自荐信范文
2013/12/24 职场文书
人力资源作业细则
2014/03/03 职场文书
职业女性的职业规划
2014/03/04 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server