用例::我在SpringBoot
应用程序中有一个公共休息端点,它将用户重定向到Angular
页面。
我有以下代码可以重定向来自我的RestController
的请求:
@RequestMapping(value = "/search", method = RequestMethod.POST)
public ResponseEntity<?> search(HttpServletRequest request, HttpServletResponse response) {
// some logice
response.sendRedirect("http://localhost:4200/#/entry");
return new ResponseEntity(HttpStatus.OK);
}
要测试端点,我有一个带有以下代码的HTML页面:
<h1>Public Tracking</h1>
<button onclick="loadDoc()">Search</button>
<script>
function loadDoc() {
console.log("button clicked");
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "http://localhost:8080/api/search", true);
xhttp.send();
}
</script>
从浏览器控制台和网络中,我可以看到收到了重定向的请求,但是页面没有打开。我可以在响应正文中看到Angular页面,但是,如何在浏览器中找到它呢?
PS:我看到其他帖子说response.sendRedirect()
无效。就我而言,它正在工作,但是我没有打开页面。
答案 0 :(得分:0)
似乎正在处理表单提交。碰巧用下面的代码修复了:
<form method="POST" id="mySearchForm">
<input type="submit" value="Search">
</form>
<script>
document.getElementById('mySearchForm').action = "http://localhost:8080/api/search";
</script>