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对select标签的控制(option选项/select)
Jan 31 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
Jun 09 Javascript
js 数组操作之pop,push,unshift,splice,shift
Jan 29 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
Aug 07 Javascript
javascript作用域问题实例分析
Jul 13 Javascript
深入理解jquery自定义动画animate()
May 24 Javascript
关于webpack代码拆分的解析
Jul 20 Javascript
深入浅析Vue不同场景下组件间的数据交流
Aug 15 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
详解webpack import()动态加载模块踩坑
Jul 17 Javascript
vue input标签通用指令校验的实现
Nov 05 Javascript
简述Vue中容易被忽视的知识点
Dec 09 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
彻底搞懂Python字符编码
2018/01/23 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
java字符串格式化输出实例讲解
2021/01/06 Python
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
程序员经常用到的UNIX命令
2015/04/13 面试题
物理系毕业生自荐书范文
2014/02/22 职场文书
公益广告宣传方案
2014/02/28 职场文书
搞笑的获奖感言
2014/08/16 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
2015年教研组工作总结
2015/05/04 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python