缘起ionic社区里的(ionic serve)时的跨域问题,有人在这里翻译了一篇文章,洋洋洒洒,从理论到实际,说的都很好。html

不过有人在底下的评论里说的更加到位:web

搜索了一下,果真啊,方便啊跨域

不过仍是要说一下在服务器上的配置,如此可以作到使ionic看成纯web来使用。安全

废话很少,上代码。服务器

先上一个attribute,每次响应都带上这个header,容许其访问:app

public class AccessControlAllowOriginAttribute : System.Web.Http.Filters.ActionFilterAttribute

{

public const string ALLOW_ORIGIN = "http://test.test.com";

public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)

{

System.Web.HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", ALLOW_ORIGIN);

}

}

在被容许调用的action或者controller上赋值此attribute:

[AccessControlAllowOrigin]

public class ValuesController : ApiController

{

}

完成。

考虑到正常来讲也就一个被容许访问的站点,所以使用了一个string的const,固然多了也能够考虑变成string[]。ionic

还能够使用动态的配置来加载这个string或者string[]。均可以。ide

public class AccessControlAllowOriginAttribute : System.Web.Http.Filters.ActionFilterAttribute

{

public static string[] ARRAY_ALLOW_ORIGIN = new string[] { "http://int-env.test.com", "http://prod-env.test.com" };

public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)

{

try

{

string origin = System.Web.HttpContext.Current.Request.Headers["Origin"];

if (string.IsNullOrWhiteSpace(origin))

{

return;

}

origin = origin.ToLower();

if (ARRAY_ALLOW_ORIGIN.Contains(origin))

{

System.Web.HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", origin);

}

}

catch (Exception ex)

{}

}

}

固然了,因为Origin能够伪造,在任意容许了跨域访问的server上,不管是个别网站来源仍是*的来源,都不是安全的,只是形成其风险的步骤稍微多了一点而已。

其安全性上仍是要更多考虑一些。post

附请求双方的一些关键字:网站

/token

post

Content-Type: application/x-www-form-urlencoded

grant_type=password&username=uname&password=pwd

resp:

{

"access_token": "ttttttttttttttttttt",

"token_type": "bearer",

"expires_in": 1209599,

"userName": "uanme",

".issued": "Fri, 01 Jul 2016 05:38:12 GMT",

".expires": "Fri, 15 Jul 2016 05:38:12 GMT"

}后续的token header:

Authorization : bearer token

ionic ajax 跨域,解决 ionic 中的 CORS(跨域) 问题相关推荐

  1. Django中的跨域解决办法 基于后端的跨域解决方案

    Django中的跨域解决办法 基于后端的跨域解决方案 1 何为跨域 在浏览器中,只要发送请求的URL的协议.域名.端口号这三者中的任意一个与当前页面地址的协议.域名.端口号不同,则称之为跨域.当发生这 ...

  2. cors跨域_Spring Boot 中通过 CORS 解决跨域问题

    (给ImportNew加星标,提高Java技能) 转自:江南一点雨 今天和小伙伴们来聊一聊通过CORS解决跨域问题. 同源策略 很多人对跨域有一种误解,以为这是前端的事,和后端没关系,其实不是这样的, ...

  3. vue php跨域,Vue 项目中遇到的跨域问题及解决方法(后台php)

    问题描述 前端 vue 框架,后台 php,百度跨域问题后台加这段代码 header("Access-Control-Allow-Origin: *"); 加了之后报这个错: Th ...

  4. 跨域解决方式——JSONP,CORS

    文章目录 1.同源策略于跨域 1.1 同源策略 1.2 跨域 1.3 为什么要设定跨域这个概念 2.解决跨域的方案 2.1 jsonp 2.2 CORS 2.3 CORS和jsonp的比较 1.同源策 ...

  5. 跨域问题JAVA后台设置cors跨域中关于access-control-allow-headers导致的错误

    cors跨域中关于access-control-allow-headers导致的错 1.详细错误信息是: Access to XMLHttpRequest at '[http://appservice ...

  6. 清除域控信息中不存在的域控制器对象

    windows2003 域控信息清除域控制器对象 写在前面: 这里主要涉及的是主控制器损坏,无法修复.而辅助域控制器已做升级处理,而损坏的域控制器的信息却还在域控中存在,为了消除对客户端的影响,我们需 ...

  7. html中jsonp错误,解决jquery中jsonp格式跨域请求报parsererror的错误

    在vs中创建一个空的mvc项目,在Controllers文件夹中添加一个控制器CommonController,并在该控制器下添加一个action用于获取服务器时间,代码如下: public Acti ...

  8. linux apache 跨域,解决nginx/apache静态资源跨域访问问题详解

    1. apache静态资源跨域访问 找到apache配置文件httpd.conf 找到这行 #LoadModule headers_module modules/mod_headers.so 把#注释 ...

  9. 我也说说Nginx解决前端跨域问题,正确的Nginx跨域配置(后端Nginx CORS跨域配置、CORS设置,后端允许跨域请求)

    最近连续两个朋友问我跨域相关问题,我猜想可能不少朋友也遇到类似问题,我打算写个博客聊一下我实际使用的配置, 先说明一下,我并不太了解这配置,没精力去了解太多,但我觉得其中有一些关键的小注意点,可能有些 ...

最新文章

  1. C++中const的用法
  2. BZOJ2281:[SDOI2011]黑白棋(博弈论,组合数学,DP)
  3. 【温故知新】CSS学习笔记(样式表)
  4. hdu5437(2015长春网络赛A题)
  5. 第四范式与赛诺贝斯达成战略合作,开启MarTech新篇章
  6. 身怀56个IM技术专利,网易云信如何改变即时通讯?
  7. 升级Python后yum不可用的解决方案
  8. idiom的学习笔记(一)、三栏布局
  9. tomcat PermGen space 不足的解决方法
  10. github博客安装jekyll的RUBY更换源
  11. 非华为电脑配对华为手机(RMB+5899¥)
  12. Thrift之代码生成器Compiler原理及源码详细解析2
  13. ae合成设置快捷键_【实用向】AE必备小技巧
  14. python程序员电脑推荐_2019程序员笔记本推荐?
  15. 15.CUDA编程手册中文版---附录K CUDA计算能力
  16. [黑马程序员C++笔记]P99-P104类和对象-封装
  17. Stable Fluids / Real-Time Fluid Dynamics for Games 笔记
  18. 一本大学计算机专业最新排名,中国校友会网2018中国大学计算机类各本科专业排行榜...
  19. CSS Tailwind
  20. 基于改进型生成对抗网络生成异构故障样本的方法

热门文章

  1. python3.5安装教程-Python 3.5安装教程
  2. python循环语句-python基础-循环语句(5)
  3. python 科学计算基础教程电子版-Python 科学计算基础 (整理)
  4. python下载的文件放在哪里的-python实现下载文件的三种方法
  5. python中and与or的执行顺序-python 代码运行顺序问题?
  6. NVIDIA Jetson Xavier NX上导入tensorflow报错:AttributeError: module ‘wrapt‘ has no attribute ‘ObjectProxy‘
  7. LeetCode Rectangle Area
  8. LeetCode Pow(x, n)
  9. 【Python】【函数式编程】
  10. 洛谷 P1678 烦恼的高考志愿