这是后端控制器的代码
@RequestMapping("/index265")
@CrossOrigin
@ResponseBody
public Model explain(Model mp){
return mp;
}
@PostMapping("/index280")
@ResponseBody
@CrossOrigin
public String jiexi(@RequestBody String tkls,Model mp){
String tkl=tkls;
jsonal= "ask";
mp.addAttribute("jsonal",jsonal);
return jsonal;
}
这是前端的HTML 代码,路径是/index265.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
<div>解析</div>
<form th:object="${tkls}" method="post">
<div>输入</div>
<textarea id="kouling" name="kouling" style="width:98%;height:20%"></textarea>
</form>
<div>结果</div>
<textarea id="result" name="result" style="width:98%;height:50%"></textarea>
<div>
<input type="button" id="log" value="显示结果"></input>
</div>
</form>
<script th:inline="javascript">
$("#log").click(function (event) {
var s=JSON.stringify('{"tkl":+"'+$("#kouling").val()+'"}');
//var res=encodeURI(s);
$.ajax({
type: 'post',
url: './index280',
async:true,
error:'重新请求',
contentType: 'application/json; charset= utf-8',
dataType: 'json',
data: s,
success:function(res){
//alert(s);
},
error:function (res) {
}
});
var a=[[${jsonal}]];
alert(a);
$("#result").text(a);
})
</script>
</body>
</html>
我这里s值不是空值,如果kouling栏输入什么内容,s就是什么内容,后端的tkls参数也是什么内容。这个问题已经解决,没有问题。
问题是我点击结果按钮,想在id为result的文本域内显示“ask”这个字符串。
可是字符串jsonal是有了“ask”这个值,我想把它传到model里,结果前端代码的a值显示的却是null,也就是空值,而弹出的alert对话框也是空值,也就是null。说明后端的jsonal字符串的值根本没传到前端去。
这个问题应该怎么解决。如何用SpringBoot+HTML(包含JS)从后端控制器向前端的HTML传值,而且指向的url值不一样。