我有关于此错误的这些链接仍然是我的问题没有解决。Here,Here,我已经检查了一些但是它们基于json。
首先,我告诉你,同样的代码在我的另一个项目中工作,事实是我已经在jsp和serlvets中实现了这个项目,并且在spring和hibernate中实现了这个项目。
问题来自于方法。什么时候回来。控制台400错误请求中出现一条消息。
这是我的方法
private void button4_Click(object sender, EventArgs e)
{
IWshNetwork_Class network = new IWshNetwork_Class();
network.MapNetworkDrive("k:", @"\\10.*.*.*\d$\test", Type.Missing, "local\\blabla", "*******");
System.Diagnostics.Process.Start("file:///K:\\gemy.exe");
//This is the closing part
network.RemoveNetworkDrive("k:");
}
的Javascript
@RequestMapping(value = "/populateBillItems")
public @ResponseBody List<String> populateItems(@RequestParam String catName) {
itemNames = productService.getItemNames(catName);
return itemNames;
}
您可以看到从数据库中检索到的值,但是当返回响应时,此错误会出现在控制台
中function populateItems(obj){
var itemCategory = obj.value;
$.get('populateBillItems', {
catName : itemCategory
}, function(response) {
var select = $('#itemName');
select.find('option').remove();
$.each(response, function(index, value) {
$('<option>').val(value).text(value).appendTo(select);
});
});
}
这是第一个问题。
我在jquery中有另一个函数,它向控制器发送请求并获取id并在文本字段中填充它。它也会给出与上面给出的相同的错误..
GET http://localhost:8080/InventoryManagementSystemUsingSpring/populateBillItems?catName=Rice 406 (Not Acceptable)
问题几乎解决了。现在我得到了像我这样的响应方法的值
function populateBillId(obj){
var objValue=obj.value;
var table="";
if(objValue=='Borrower'){
table="BorrowerBill";
alert(table);
$("#customerName").prop("readonly", true);
}else if(objValue=='Customer'){
$("#customerName").prop("readonly",false);
table="CustomerBill";
}
$.get('populateBillId', {
tableName : table
}, function(response) {
var id=response;
$("#billId").val(id);
});
}
GET http://localhost:8080/InventoryManagementSystemUsingSpring/populateBillId?tableName=BorrowerBill
并像这样对JQuery进行了调整
@RequestMapping(value = "/populateBillItems")
public @ResponseBody String populateItems(@RequestParam String catName) {
itemNames = productService.getItemNames(catName);
String json=null;
json = new Gson().toJson(itemNames);
return json;
}
但现在的问题是我在选项
中也得到了(双引号)“”这些是itemNames SelectBox和Id Textfield
中的引用答案 0 :(得分:0)
我认为你的行动没有失败。
我看到你发现了HTTP 406
消息。
您的后端服务表示客户端请求的Accept HTTP标头中未提供它返回的响应类型。
JSON作为application/json
提供。您应该将其添加到标题中。
w3.org - 10.4.7 - 406 Not Acceptable
修改强>
在您的方法中,您将String返回到前端。尝试像这样转换json:
@RequestMapping(value = "/populateBillItems")
public @ResponseBody String populateItems(@RequestParam String catName) {
itemNames = productService.getItemNames(catName);
String json = new Gson().toJson(itemNames);
System.out.println(json); // result before parsing
json = new JsonParser().parse(json).getAsString();
System.out.println(json); // result after parsing
return json;
}