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 相关文章推荐
类似CSDN图片切换效果脚本
Sep 17 Javascript
jQuery ui插件的使用方法代码实例
May 08 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
Jul 02 Javascript
Node.js模块加载详解
Aug 16 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
Apr 06 Javascript
详解jQuery中的deferred对象的使用(一)
May 27 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
Jun 22 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
JS实现的新闻列表自动滚动效果示例
Jan 30 Javascript
layui 弹出删除确认界面的实例
Sep 06 Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 Javascript
Express 配置HTML页面访问的实现
Nov 01 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 parse_str() 函数的定义和用法
2016/05/23 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
Js组件的一些写法
2010/09/10 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
Python完全新手教程
2007/02/08 Python
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
Python 通配符删除文件的实例
2018/04/24 Python
Python3处理HTTP请求的实例
2018/05/10 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
联想C++笔试题
2012/06/13 面试题
写自荐信三大法宝
2014/01/24 职场文书
环保标语口号
2014/06/13 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
成绩单评语
2015/01/04 职场文书
党支部书记岗位职责
2015/02/15 职场文书
运动会主持词大全
2015/07/02 职场文书
趣味运动会简讯
2015/07/20 职场文书
高中运动会广播稿
2015/08/19 职场文书