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事件问题
Sep 05 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
Feb 03 Javascript
javascript 图片裁剪技巧解读
Nov 15 Javascript
js/jquery解析json和数组格式的方法详解
Jan 09 Javascript
清除div下面的所有标签的方法
Feb 17 Javascript
使用pjax实现无刷新更改页面url
Feb 05 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
Feb 20 Javascript
三种带箭头提示框总结实例
Jun 14 Javascript
python爬取安居客二手房网站数据(实例讲解)
Oct 19 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
vue实现模态框的通用写法推荐
Feb 26 Javascript
BootstrapValidator验证用户名已存在(ajax)
Nov 08 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的XML文件解释类应用实例
2014/09/22 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
python获取外网ip地址的方法总结
2015/07/02 Python
Python 基础教程之包和类的用法
2017/02/23 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
python实现雨滴下落到地面效果
2018/06/21 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
python如何查看安装了的模块
2020/06/23 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
师德建设实施方案
2014/03/21 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
九九重阳节标语
2014/10/07 职场文书
中秋节慰问信
2015/02/15 职场文书
信仰纪录片观后感
2015/06/08 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电