未在浏览器中打开Response.sendRedirct()URL

时间:2020-01-10 14:11:40

标签: java angular spring-boot

用例::我在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页面,但是,如何在浏览器中找到它呢?

success response

PS:我看到其他帖子说response.sendRedirect()无效。就我而言,它正在工作,但是我没有打开页面。

1 个答案:

答案 0 :(得分:0)

似乎正在处理表单提交。碰巧用下面的代码修复了:

<form method="POST" id="mySearchForm">
    <input type="submit" value="Search">
</form>

<script>
    document.getElementById('mySearchForm').action = "http://localhost:8080/api/search";
</script>