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动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
Feb 06 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
May 19 Javascript
jQuery查看选中对象HTML代码的方法
Jun 17 Javascript
Jquery获取当前城市的天气信息
Aug 05 Javascript
jQuery插件实现可输入和自动匹配的下拉框
Oct 24 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
Dec 26 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
Jul 11 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
May 31 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
Sep 23 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
Jan 21 Javascript
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
150kHz到30Mhz完全冲浪手册
2020/03/20 无线电
第十五节--Zend引擎的发展
2006/11/16 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
Python操作json数据的一个简单例子
2014/04/17 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
python解析xml文件实例分析
2015/05/27 Python
Python中常用信号signal类型实例
2018/01/25 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
Java程序员综合测试题
2014/04/25 面试题
安全教育感言
2014/03/04 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
素质教育培训心得体会
2016/01/19 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL
SpringBoot整合Minio文件存储
2022/04/03 Java/Android