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 相关文章推荐
Javascript让DEDECMS告别手写Tag
Sep 01 Javascript
Javascript核心读书有感之语句
Feb 11 Javascript
JS实现字符串转日期并比较大小实例分析
Dec 09 Javascript
JavaScript 经典实例日常收集整理(常用经典)
Mar 30 Javascript
在AngularJS中使用jQuery的zTree插件的方法
Apr 21 Javascript
AngularJS动态加载模块和依赖的方法分析
Nov 08 Javascript
关于AngularJs数据的本地存储详解
Jan 20 Javascript
jquery获取下拉框中的循环值
Feb 08 Javascript
分析JS中this引发的bug
Dec 12 Javascript
VUE实现移动端列表筛选功能
Aug 23 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
Nov 13 Javascript
关于React Native 无法链接模拟器的问题
Jun 21 Javascript
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中的日期处理方法集锦
2007/01/02 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
解决layui-open关闭自身窗口的问题
2019/09/10 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
Python的另外几种语言实现
2015/01/29 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
python各类经纬度转换的实例代码
2019/08/08 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
python 创建一维的0向量实例
2019/12/02 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
android面试问题与答案
2016/12/27 面试题
小学生新学期寄语
2014/01/19 职场文书
优秀导游先进事迹材料
2014/01/25 职场文书
股东合作协议书
2014/09/12 职场文书
2015年维修工作总结
2015/04/25 职场文书
实施意见格式范本
2015/06/05 职场文书
React forwardRef的使用方法及注意点
2021/06/13 Javascript
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server