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动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
javaScript 动态访问JSon元素示例代码
Aug 30 Javascript
动态载入js提高网页打开速度的方法
Jul 04 Javascript
javascript实现的固定位置悬浮窗口实例
Apr 30 Javascript
javascript中字体浮动效果的简单实例演示
Nov 18 Javascript
获取input标签的所有属性的方法
Jun 28 Javascript
深入理解javascript中concat方法
Dec 12 Javascript
JavaScript函数中的this四种绑定形式
Aug 15 Javascript
详解使用webpack打包编写一个vue-toast插件
Nov 08 Javascript
vue移动端模态框(可传参)的实现
Nov 20 Javascript
Vue请求java服务端并返回数据代码实例
Nov 28 Javascript
JS数组方法some、every和find的使用详情
Oct 05 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 curl批处理实现可控并发异步操作示例
2018/05/09 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
python中有帮助函数吗
2020/06/19 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
python 从list中随机取值的方法
2020/11/16 Python
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
英国女性时尚品牌:Apricot
2018/12/04 全球购物
升职自荐书范文
2013/11/28 职场文书
大队干部竞选演讲稿
2014/04/28 职场文书
田径运动会通讯稿
2014/09/13 职场文书
机关作风建设工作总结
2014/10/23 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
求职信格式范文
2015/03/19 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python