【发布时间】:2019-10-20 23:18:24
【问题描述】:
我试图让网页的一部分每隔一段时间刷新一次。 我将 spring boot 与 thymeleaf 一起用于我的 Web 应用程序。 我决定使用 jquery get 请求来联系我的 mvc 控制器,但是这个 get 请求似乎没有被控制器处理。
我已经尝试在加载时调用该函数,但没有提供任何结果。
这里是 Ajax 函数:
function setupRefresh() {
setInterval(refreshFrame(), 1000);
}
function refreshFrame() {
$.ajax({type: "GET",
url: "http://localhost:8080/refresh"
}).done(function (fragment) {
$("#navbar").replaceWith(fragment);
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("AJAX call failed: " + textStatus + ", " + errorThrown);
});
}
这是我要刷新的 div:
<nav id="navbar" class="navbar" th:fragment="navbar">
<input type="text" name="search" placeholder="Search..">
<div class="mx-auto order-0">
<a class="navbar-brand" href="/index">Boxed</a>
</div>
<div>Generate Days:</div>
<a th:text="${currentDay}" th:href="@{/toggleGeneration}" onclick="setupRefresh()"></a>
</nav>
这是我的控制器
@Controller
public class DataController {
@Autowired
private DayService dayService;
@GetMapping(value = "/refresh")
public String refreshNumber(Model model){
model.addAttribute("currentDay", dayService.findHighest().getDayNr());
return "index.html :: #navbar";
}
}
似乎甚至没有执行获取请求,因为我什至没有在页面上收到错误警报。在获取请求之外编写的所有内容都已执行,但是请求本身没有给我任何信息。
【问题讨论】:
-
将 url 更改为
/refresh并删除http://localhost:8080部分。 -
我刚试过这个,但是 get 仍然没有被执行。奇怪的是,它似乎根本没有执行,甚至没有给出失败信息。
-
尝试调试,看看它是否击中您的控制器。也从
"index.html :: #navbar"中删除#
标签: jquery ajax spring model-view-controller thymeleaf