关于部署上线后支付404的问题!

来源:15-9 项目部署

huoqiang

2021-03-10

前端项目已经部署上线了,后端的接口是看廖师兄课程开发的,也上线了。
其他的接口都能请求成功,就是支付这里有个问题。
首先我单独在浏览器请求支付接口没问题。
图片描述
然后在线上项目点击支付后就显示pay接口为404。发现这个地址栏的参数没有提交上去
图片描述

下面是支付按钮的方法:

  paySubmit(payType) {
        if (payType == 1) {
          window.open('/#/order/alipay?orderId=' + this.orderId, '_blank');
        } else {
          this.axios.post('/pay', {
            orderId: this.orderId,
            orderName: 'Vue高仿小米商城',
            amount: 0.01,//单位元
            payType: 2 //1支付宝,2微信
          }).then((res) => {
            QRCode.toDataURL(res.content)
              .then(url => {
                this.showPay = true;
                this.payImg = url;
                this.loopOrderState();
              })
              .catch(() => {
                this.$message.error('微信二维码生成失败,请稍后再试!')
              })
          })
        }
      },

下面是nginx配置文件:

server
{
    listen 80;
    server_name mi.huoqiang.site;
    index index.html index.htm login.html;
    root /www/wwwroot/mi.huoqiang.site;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-00.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/mi.huoqiang.site.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null; 
    }
    location ^~/api/
    {
	  proxy_pass http://127.0.0.1:8080/;
    }
    location ^~/pay/
    {
          proxy_pass http://127.0.0.1:8081/pay/;
    }
    access_log  /www/wwwlogs/mi.huoqiang.site.log;
    error_log  /www/wwwlogs/mi.huoqiang.site.error.log;
}

我是新手倒腾了好久不知道是哪里的问题。
辛苦老师看一下!谢谢!

附:
a:服务器已经开放8080及8081端口
b:商品和支付接口都已经启动
图片描述

写回答

2回答

河畔一角

2021-03-12

支付的地址可能需要廖师兄后台做一个域名添加,目前廖师兄的后台只能认识我的域名。所以你的域名是无法直接支付的。


另外,我看到你第一个生成二维码的域名有8001端口,你线上的并没有端口

1
5
huoqiang
回复
慕仔4607872
我又从新在本地跑一次。所有流程都没问题。这个项目的前端还有后端接口我是我自己写的。我想着是先把后端的接口部署好,完了前端在本地先请求,看有没有错误,没有的话在部署前端,完了弄个代理。我先试试。谢谢你的回复!
2021-03-27
共5条回复

河畔一角

2021-03-21

看起来确实是多了一层/api,后台没有,你要把/api删掉,前端在讲的时候,也是在vue.config.js中把/api抹掉的

0
1
huoqiang
老师我的vue.config.js是这样的。 devServer: { host: 'localhost', port: 8080, proxy: { '/api': { target:'http://mi.huoqiang.site:8080/', changeOrigin: true, pathRewrite: { '/api': '' } } } }, 这里的/api删掉还是nginx配置文件的 location ^~/api/ { proxy_pass http://127.0.0.1:8080/; }
2021-03-27
共1条回复

Vue全家桶实战 从零独立开发企业级电商系统

Vue全家桶构建企业级电商系统,真实服务端数据对接,高实用性

2560 学习 · 1307 问题

查看课程