微信小程序主题活动_详解VueJs前后端别离跨域问
阅读 · 发布日期 2021-01-12 11:02 · admin 详解VueJs前后端分离跨域问题
本篇文章主要介绍了详解VueJs前后端分离跨域问题,详细介绍了在项目内设置代理(proxyTable)的方式来解决跨域问题,有兴趣的可以了解一下
使用vue-cli搭建的vue项目
可以使用在项目内设置代理(proxyTable)的方式来解决跨域问题
设置配置项的目录在config下的index.js,主要通过配置proxyTable项,设置代理指向你的后台地址
dev: { env: require('./dev.env'), port: 8085, autoOpenBrowser: true, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/agent': { target: '', changeOrigin: true, pathRewrite: { '^/agent': '' // CSS Sourcema凡科抠图 off by default because relative paths are "buggy" // with this option, according to the CSS-Loader README // (webpack/css-loader#sourcema凡科抠图) // In our experience, they generally work as expected, // just be aware of this issue when enabling this option. cssSourceMap: false
前端使用vue-resource来发起请求时
//在main.js中设置公用的地址 Vue.prototype.rootUrl = '/agent/'; //在具体page中发起请求的方式 that.$http.post(this.rootUrl + 'login', parms).then(function (response) { // 响应成功回调 console.log(response); }, function (response) { // 响应错误回调
其他方式搭建的前端项目,通过使用nginx启动前端服务同时配置代理
下列是我的nginx配置文件,不管是通过什么方式搭建的前端项目,构建成功后都会输出一个dist文件,我们只需要将nginx服务目录指向你的dist文件下你项目的入口文件即可
< 使用的是vue-cli打包的项目,参考vue-cli npm run build的dist目录,指向那个目录下#user nobody; worker_processes 4; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/; #pid logs/nginx.pid; events { worker_connections 1024; http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" "$status" $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" "$gzip_ratio" $request_time $bytes_sent $request_length'; log_format main '[$time_iso8601] [$remote_addr] [$request] [$http_user_agent] [$cookie_customerID_cookie_flag] [$args]'; access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; p_level 3; gzip_proxied any; gzip_types *; server { listen 80; root D:\openplatform\portal\webapp\dist; ; location / { try_files $uri $uri/ @router; ; location @router { last; location ^~/agent/ { proxy_pass ; proxy_redirect /; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 600s; proxy_read_timeout 600s; proxy_send_timeout 600s;