【发布时间】:2020-10-14 18:55:06
【问题描述】:
一直在尝试理解并在网络上搜索答案, 但我似乎无法在页面中显示响应
这是我的片段,它与 Thymeleaf 一起在列表中循环:
<div id="cnaver" class="col card-deck m1-5 my-3" th:if="${!products.isEmpty()}">
<div class="carousel-testimony owl-carousel ftco-owl">
<div class="card border-0" th:each="product : ${products}">
<div class="item">
<img class="imgx" th:if="${!product.getImage().isEmpty()}" th:src="${product.getImage()}"/>
<div class="card-body">
<h4 class="card-little" th:text="${product.getName()}"></h4>
</div>
<div class="card-footer">
<p>
<span id="productPriceRtl" th:utext="${product.getPrice()}"></span> עוגיות
</p>
<a class="btn btn-lg btn-outline-info btn-block spawner" th:href="${product.getName()}">קנה</a>
<!-- th:href="${'/spawn/' + product.getName()}" -->
</div>
</div>
</div>
</div>
</div>
根据 ajax 给出的 id 过滤产品列表的控制器
@GetMapping(value = {"/cnav/{ids}"})
public @ResponseBody ModelAndView sendToCNav(@PathVariable("ids") int ids) {
ModelAndView modelAndView = new ModelAndView("fragments/product::cnavProduct");
modelAndView.addObject("products", this.productService.getProductListByType(products, ids));
return modelAndView;
}
最后是 Ajax
$(document).on("click", '.cajax', function() {
$.ajax({
type: "get",
url: "/cnav/" + this.id,
dataType: "html",
success: function(response) {
$(response).load(response);
$("#cnaver").html(response);
},
error: function(response) {
alert(response);
}
});
});
这是选择发送到 ajax 调用的 url 的导航栏
<nav class="cnav" >
<ul>
<li class="cselected cajax" id="0">
<div class="fonta"><i class="fas fa-skull-crossbones fa-3x"></i></div>
</li>
<li class="cnotselected cajax" id="1">
<div class="fonta"><i class="fas fa-gift fa-3x"></i></div>
</li>
<li class="cnotselected cajax" id="2">
<div class="fonta"><i class="fas fa-cat fa-3x"></i></div>
</li>
<li class="cnotselected cajax" id="3">
<div class="fonta"><i class="fas fa-globe-americas fa-3x"></i></div>
</li>
</ul>
</nav>
现在.. 问题是 html 中的响应是 100%,我将整个片段作为响应, 但该页面似乎根本没有显示任何内容。 例如,如果我将响应更改为 .text(response) ,我可以在正确的位置将整个片段视为文本,但 .html(response) 似乎不起作用,与 replaceWith 和追加..
【问题讨论】:
标签: ajax spring-boot thymeleaf