解决java后台发起重定向响应成功,但前端不跳转页面问题

微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路

Java后台使用了 “redirect:/”重定向的操作

前端进行请求该接口时,如果直接访问该接口,可以跳转指定的页面,但如果在页面中访问该接口,发现页面并不发生跳转,查看控制台,请求是成功的。

跳转的地址也显示请求成功

但是页面内容不发生跳转,还是原来的页面

问题主要在前端进行请求的时候,如果请求成功应该加上一句

window.location='/'

后台重定向成功但并不会改变url的内容,这句话的意思就是前端将自己的url发生改变,然后进行新的url请求

### Java 实现支付宝沙箱环境支付前端集成 #### 一、准备工作 为了在Java项目中实现支付宝沙箱环境下的支付功能,首先需要完成一些必要的准备。这包括但限于获取应用ID (`APP_ID`) 和密钥对 (私钥 `APP_PRIVATE_KEY` 及公钥 `ALIPAY_PUBLIC_KEY`) 的设置[^3]。 #### 二、配置文件修改 在Spring Boot项目的 `application.yml` 文件内加入支付宝的相关参数: ```yaml alipay: APP_ID: 自己的appid APP_PRIVATE_KEY: 填自己的私钥 CHARSET: utf-8 ALIPAY_PUBLIC_KEY: 公钥 GATEWAY_URL: https://openapi-sandbox.dl.alipaydev.com/gateway.do FORMAT: json SIGN_TYPE: RSA2 NOTIFY_URL: http://localhost:8080/pay/notify RETURN_URL: 支付宝支付成功后要跳转到哪个页面,自己定义 ``` 上述配置指定了网关地址为沙箱环境专用链接,并设置了通知回调URL以及支付完成后重定向的目标位置。 #### 三、前端HTML表单构建 对于前端部分来说,通常会通过创建一个隐藏式的HTML表单来提交请求给支付宝服务器。下面是一个简单的例子展示如何构造这样的表单并自动提交它以启动支付流程: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title>Pay</title> </head> <body onload="document.forms['payForm'].submit();"> <form id="payForm" name="payForm" action="${gatewayUrl}" method="post"> <!-- 这里放置由后台生成的具体订单信息 --> <input type="hidden" name="out_trade_no" value="${orderNumber}"> <input type="hidden" name="total_amount" value="${amount}"> <input type="hidden" name="subject" value="${productTitle}"> <input type="hidden" name="body" value="${description}"> <!-- 必填项和其他必要字段省略 --> <!-- 签名 --> <input type="hidden" name="sign" value="${signature}"> </form> </body> </html> ``` 此模板中的变量 `${}` 应该被实际的数据替换掉,比如订单号(`${orderNumber}`),金额(`${amount}`)等,这些数据应该从前端向后端起AJAX请求获得,而后端负责组装完整的支付请求体并将签名计算好之后再响应前端[^1]。 #### 四、处理异步通知与同步返回 当用户完成付款操作后,支付宝将会按照设定的通知URL送POST请求告知交易状态变化情况(即异步通知),同时也允许浏览器直接访问指定的RETURN_URL网址(即同步返回)。因此,在编写服务端逻辑时需特别注意这两种情形的同处理方式[^2]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十同学

谢谢大佬打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值