vue.js使用代理和使用Nginx来解决跨域的问题


Posted in Javascript onFebruary 03, 2018

使用Nginx 反向代理解决跨域问题(vue.js使用代理去掉vue.js因为跨域而触发的options请求)

我们的项目还是需要node.js作为容器的

一、Windows 下安装Nginx (官网下载稳定版http://nginx.org/en/download.html)

二、修改config里的nginx.conf文件的server

server { 
listen 8899;// 你的端口 
server_name localhost; 
root C:/ZOBSF_F/dist;//你打包部署的文件路径 
#charset koi8-r; 
#access_log logs/host.access.log main; 
# 匹配 api 路由的反向代理到API服务 
location ^~/api { 
proxy_pass http://119.23.227.141:10001/;//你的后端IP和端口 
} 
#根据路由设置,避免出现404 
location / { 
try_files $uri $uri/ @router; 
index index.html; 
} 
location @router { 
rewrite ^.*$ /index.html last; 
} 
#error_page 404 /404.html; 
# redirect server error pages to the static page /50x.html 
# 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
root html; 
} 
# proxy the PHP scripts to Apache listening on 127.0.0.1:80 
# 
#location ~ \.php$ { 
# proxy_pass http://127.0.0.1; 
#} 
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
# 
#location ~ \.php$ { 
# root html; 
# fastcgi_pass 127.0.0.1:9000; 
# fastcgi_index index.php; 
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
# include fastcgi_params; 
#} 
# deny access to .htaccess files, if Apache's document root 
# concurs with nginx's one 
# 
#location ~ /\.ht { 
# deny all; 
#} 
}

三、 你的uve.js打包的dist文件如下

vue.js使用代理和使用Nginx来解决跨域的问题

四、然后再加一个项目启动配置文件 server.production.js

var express = require('express');
var app = express();
var compression = require('compression');
var proxyMiddleware = require('http-proxy-middleware')
var history = require('connect-history-api-fallback');
app.use(compression());
app.use(express.static(__dirname));
app.middleware = [//使用代理api
    proxyMiddleware(['/api'], {target: 'http://192.168.11.103:10001',
    changeOrigin: true,
    pathRewrite: {
    '^/api' : '/', 
  },}),
];
app.get('*', function(req, res) {
  res.sendFile(__dirname + '/index.html');
});
app.use(history());
app.use(app.middleware);

app.listen('8080', function(error) {
  console.info("==================系统正在启动中...=============================");
 if (error) {
  console.error(error)
 } else {
  console.info("==================9999系统启动成功!!!=============================")
 }
});

五、然后在项目目录下使用命令node server.production.js 回车发现包缺少依赖,使用npm install [报错提示的依赖组件] 即可 分别有express、compression、http-proxy-middleware等。

然后启动项目就可以了 访问地址http://localhost:8080/xxx即可

六、vue.js使用代理具体可以百度(在config配置文件里的inde.js修改就可了)

proxyTable: {
     '/api': {
    target: Host.Host,//设置你调用的接口域名和端口号 别忘了加http
    changeOrigin: true,
    pathRewrite: {
     '^/api': '/'//这里理解成用‘/api'代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add'即可
    }
   }
  },

以上这篇vue.js使用代理和使用Nginx来解决跨域的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript的函数作用域
Nov 12 Javascript
原生javascript实现简单的datagrid数据表格
Jan 02 Javascript
node.js cookie-parser 中间件介绍
Jun 06 Javascript
模仿password输入框的实现代码
Jun 07 Javascript
Vue.js每天必学之构造器与生命周期
Sep 05 Javascript
Javascript blur与click冲突解决办法
Jan 09 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
Vue2单一事件管理组件通信
May 09 Javascript
Vue项目添加动态浏览器头部title的方法
Jul 11 Javascript
uni-app 支持多端第三方地图定位的方法
Jan 03 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
Mar 08 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
vue-cli开发时,关于ajax跨域的解决方法(推荐)
Feb 03 #Javascript
JavaScript设计模式之调停者模式实例详解
Feb 03 #Javascript
JavaScript实现求最大公共子串的方法
Feb 03 #Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
Feb 03 #Javascript
js删除数组中的元素delete和splice的区别详解
Feb 03 #Javascript
JS删除数组里的某个元素方法
Feb 03 #Javascript
jQuery niceScroll滚动条错位问题的解决方法
Feb 03 #jQuery
You might like
php数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
php学习之function的用法
2012/07/14 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
python抓取网页内容示例分享
2014/02/24 Python
Python with用法实例
2015/04/14 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
硕士研究生求职自荐信范文
2014/03/11 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
《圆的面积》教学反思
2016/02/19 职场文书