在此场景中基于两个组合框状态和分区
我的javascript
<script>
function selectState() {
$.ajax({
type : 'POST',
dataType : 'json',
url : '/learnware/selectstate.html',
data : ({
id : $('#state').val()
}),
success: function(responseData) {
if(responseData != null) {
$('#district')
.find('option')
.remove()
.end();
$.each(responseData, function(index,item) {
$('#district').append(
$('<option></option>').val(item['id']).html(item['name'])
);
});
}
}
});
}
</script>
这里我的控制器与scala集成了弹簧
@RequestMapping(value = Array("selectstate.html"))
@ResponseBody
def getState(@RequestParam id: Long): java.util.List[District] = {
var districtList:List[District]=null
if(id!=null){
var districtList:List[District]=districtService.findDistrictListByStateId(id)
println(districtList)
}
districtList
}
最后是我的html组合框
<select id="state" onchange="selectState();">
<option th:each="s : ${states}" th:text="${s.stateName}" th:value="${s.id}">India</option>
</select>
<select id="district" >
<option ></option>
</select>
问题是,当我更改选择框值时,浏览器(chrome)控制台会给我一些错误,而且它不会更改为区域选择框
浏览器控制台错误
POST http://localhost:8080/learnware/selectstate.html 406 (Not Acceptable) jquery.js:8706
答案 0 :(得分:0)
这是一个类似的线程,带有406 HTTP状态响应
Spring JSON request getting 406 (not Acceptable)
通常,这意味着您的浏览器(chrome)请求的内容类型无法由服务器提供。 Chrome浏览器在Http Accept标头中指示其所需的内容类型。
所以你可以检查几件事: