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 相关文章推荐
表单内同名元素的控制
Nov 22 Javascript
jquery ajax 检测用户注册时用户名是否存在
Nov 03 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
原生JS可拖动弹窗效果实例代码
Nov 09 Javascript
js判断当前浏览器类型,判断IE浏览器方法
Jun 02 Javascript
jQuery 中DOM 操作详解
Jan 13 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
Sep 27 Javascript
Jquery根据浏览器窗口改变调整大小的方法
Feb 07 Javascript
JS实现的tab切换选项卡效果示例
Feb 28 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 Javascript
全面分析JavaScript 继承
May 30 Javascript
vue element-ui读取pdf文件的方法
Nov 26 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的图形函数中显示汉字
2006/10/09 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
jQuery 方法大全方便学习参考
2010/02/25 Javascript
Jquery Change与bind事件代码
2011/09/29 Javascript
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
js定义类的几种方法(推荐)
2016/06/08 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
python名片管理系统开发
2020/06/18 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
装修五一活动策划案
2014/01/23 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
个人学习总结范文
2015/02/15 职场文书
单方投资意向书
2015/05/11 职场文书
毕业设计致谢语
2015/05/14 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python