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 相关文章推荐
HTML-CSS群中单选引发的“事件”
Mar 05 Javascript
IE8 浏览器Cookie的处理
Jan 31 Javascript
网站页面自动跳转实现方法PHP、JSP(下)
Aug 01 Javascript
javascript多种数据类型表格排序代码分析
Sep 11 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
Oct 15 Javascript
分享一个asp.net pager分页控件
Jan 04 Javascript
jquery导航制件jquery鼠标经过变色效果示例
Dec 05 Javascript
JQuery实现绚丽的横向下拉菜单
Dec 19 Javascript
js实现简单div拖拽功能实例
May 12 Javascript
Javascript中prototype的使用详解
Jun 18 Javascript
JS交互点击WKWebView中的图片实现预览效果
Jan 05 Javascript
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
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
在Windows版的PHP中使用ADO
2006/10/09 PHP
adodb与adodb_lite之比较
2006/12/31 PHP
php print EOF实现方法
2009/05/21 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
Ubuntu上安装yaf扩展的方法
2018/01/29 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
js实现简单计算器
2015/11/22 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
使用python Django做网页
2013/11/04 Python
Django model序列化为json的方法示例
2018/10/16 Python
对Python3 序列解包详解
2019/02/16 Python
python requests指定出口ip的例子
2019/07/25 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
2019/08/17 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
技术副厂长岗位职责
2013/12/26 职场文书
优秀教师主要事迹
2014/02/01 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
党组织结对共建协议书
2016/03/23 职场文书