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 相关文章推荐
从JavaScript 到 JQuery (1)学习小结
Feb 12 Javascript
Javascript 面向对象(三)接口代码
May 23 Javascript
jquery 表格的增行删行实现思路
Mar 21 Javascript
js中的屏蔽的使用示例
Jul 30 Javascript
js获取select标签选中值的两种方式
Jan 09 Javascript
实例讲解JS中数组Array的操作方法
May 09 Javascript
javascript实现验证IP地址等相关信息代码
May 10 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
May 05 Javascript
使用Script元素发送JSONP请求的方法
Jun 12 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
d3.js入门教程之数据绑定详解
Apr 28 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
Jul 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
PHP 在线翻译函数代码
2009/05/07 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
2013/11/15 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
浅谈javascript中的 “ && ” 和 “ || ”
2017/02/02 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
python使用range函数计算一组数和的方法
2015/05/07 Python
Python的randrange()方法使用教程
2015/05/15 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
Python 转换文本编码实现解析
2019/08/27 Python
Python实现搜索算法的实例代码
2020/01/02 Python
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
面向对象设计的原则是什么
2013/02/13 面试题
采购员岗位职责
2013/11/15 职场文书
新学期校长寄语
2014/01/18 职场文书
作文批改评语大全
2014/04/23 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
故意伤害辩护词
2015/05/21 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server