vue几个常用跨域处理方式介绍


Posted in Javascript onFebruary 07, 2018

设置express代理请求

在基于vue-cli的项目中,在开发环境配置(config/dev.env.js)中设置代理,能够将所有/apidomain开头的请求都通过npm run dev启动的express服务器重定向到目标接口

官方文档:https://vuejs-templates.github.io/webpack/proxy.html

proxyTable: {
  '/apidomain':{
  target:'http://localhost:prot',//或ip或域名。
  changeOrigin:true,
  pathRewrite: {
   '^/apidomain': ''
  }
  }
 },

若要通过IP在局域网访问h5,启动开发服务器的时候添加host参数即可

即package.json的dev命令配置如下

"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 0.0.0.0",

关闭chrome安全策略实现跨域

windows中新建一个bat文件粘贴下面的命令即可以此模式打开

cd "C:\Program Files (x86)\Google\Chrome\Application" 
chrome.exe --disable-web-security --user-data-dir=c:/CorsUserData

asp.net core 服务端的CORS跨域设置

官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/security/cors

在实际设置中,因为在h5端添加header参数产生了预检(OPTIONS)请求,看了上述文章后将通用参数修改到了query参数中

1. 添加cors服务

public void ConfigureServices(IServiceCollection services)
{
 //若只有部分接口则定义一个或多个命名的 CORS 策略,并在运行时按名称然后选择的策略,通过特性标记去设置跨域 详情见文档
 services.AddCors();
}

2. 启用中间件

//读取配置文件中设置的允许跨域的域名 CorsOrigins为一个数组 设置["*"]则会允许所有
var origins = Configuration.GetSection("CorsOrigins").GetChildren().Select(s => s.Value).ToArray();
app.UseCors(e =>
{
 e.WithOrigins(origins).AllowAnyHeader().AllowAnyMethod().AllowCredentials();
});
//Startup文件中Configuration对象的获取
public IConfiguration Configuration { get; }
public Startup()
{
 var builder = new ConfigurationBuilder()//...AddJsonFile($"appsettings.json");
 Configuration = builder.Build();
}

JSONP

JSONP只支持GET请求,CORS支持所有类型的HTTP请求。JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。

Javascript 相关文章推荐
实现png图片和png背景透明(支持多浏览器)的方法
Sep 08 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
Oct 11 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
Apr 06 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
Apr 07 Javascript
AngularJS动态绑定HTML的方法分析
Nov 07 Javascript
原生JS实现九宫格抽奖效果
Apr 01 Javascript
vue服务端渲染的实例代码
Aug 28 Javascript
React + webpack 环境配置的方法步骤
Sep 07 Javascript
React Native中的RefreshContorl下拉刷新使用
Oct 09 Javascript
js实现AI五子棋人机大战
May 28 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
Jan 19 Javascript
jquery+ajax实现异步上传文件显示进度条
Aug 17 jQuery
vue项目中axios使用详解
Feb 07 #Javascript
vue-cli webpack2项目打包优化分享
Feb 07 #Javascript
浅谈es6中export和export default的作用及区别
Feb 07 #Javascript
Vue封装Swiper实现图片轮播效果
Feb 06 #Javascript
vue中如何使用ztree
Feb 06 #Javascript
javascript回调函数详解
Feb 06 #Javascript
原生JS实现瀑布流插件
Feb 06 #Javascript
You might like
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
php获取apk包信息的方法
2014/08/15 PHP
php类自动加载器实现方法
2015/07/28 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
PHP在线书签系统分享
2016/01/04 PHP
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
用python3教你任意Html主内容提取功能
2018/11/05 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
pymysql 开启调试模式的实现
2019/09/24 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
python爬虫基础之urllib的使用
2020/12/31 Python
匡威英国官网:Converse英国
2018/12/02 全球购物
工商学院毕业生自荐信
2013/11/12 职场文书
仓库管理制度
2014/01/21 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
民事和解协议书格式
2014/11/29 职场文书