如何使用 ajax 和 javascript 将参数传递给控制器
How to pass parameters to controller using ajax and javascript?
我正在尝试使用带有javascript的Ajax从购物车中删除商品,但是在将参数传递给控制器时遇到问题。控制器中的参数为空。
我的JavaScript代码如下所示:
function removeRow(itemId, rowID){
if (xmlHttp == null)
{
alert("Your browser does not support AJAX!");
return;
}
var query = "action=remove&item=" + itemId;
/* alert(query); */
xmlHttp.onreadystatechange = function stateChanged()
{
if (xmlHttp.readyState == 4)
{
var row = document.getElementById(rowID);
row.parentNode.removeChild(row);
}
};
xmlHttp.open("GET", "addTo.htm", true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send(query);
return false;
/* var row = document.getElementById(rowID);
row.parentNode.removeChild(row); */
}
我的控制器代码如下所示:
@Controller
@RequestMapping("/addTo.htm")
public class AddToController{
@RequestMapping(method=RequestMethod.GET)
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
String action = request.getParameter("action");
System.out.println(action);
ModelAndView mv = new ModelAndView();
ArrayList<Item> cart;
if(action.equals("remove")){
System.out.println("cart size is" + cart.size());
Long itemId = Long.parseLong(request.getParameter("item"));
ItemDAO itemDao= new ItemDAO();
Item item = itemDao.get(itemId);
cart.remove(item);
System.out.println(cart.size());
}
return mv;
}
}
操作和项在控制器中为 null。
任何人都可以帮助解决这个问题吗?
您要发送 GET 请求,因此请将参数作为查询添加到 URL 之后:
xmlHttp.open("GET", "addTo.htm?" + query, true);
并在调用 .send 方法时传入 null(而不是查询字符串):
xmlHttp.send(null);
此外,"application/x-www-form-urlencoded"标头仅在发送序列化参数但使用 POST 时使用,因此请删除xmlHttp.setRequestHeader
行。
更多信息: https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started
相关文章:
- 在嵌套递归指令中将参数传递给父控制器方法
- 如何使用 ajax 和 javascript 将参数传递给控制器
- 将 Jade Link 中的参数传递给节点控制器
- 在构造控制器、服务等时作为函数参数传递之前列出的角度 JS 变量
- 使用 getJSON 将多个数组作为参数传递给主控制器
- AngularJS:如何通过ng-href将多个参数传递给控制器
- Angular js - 解决不将参数传递给控制器的问题
- 如何将下拉列表中所选项的值作为参数传递给控制器(Google 图表)
- Symfony2 控制器和 Javascript 参数传递
- 将状态参数传递给状态提供程序中设置的控制器
- 如何将控制器变量作为 AngularJS $resource请求的参数传递
- 如何将多个参数传递给控制器
- 我可以把一个参数从控制器传递到app.js吗
- 将路由参数传递给控制器
- 如何在Ionic中只传递控制器变量的值作为参数
- 当使用button_to时,传递JS参数给控制器
- js + jQueryUI,将参数传递给控制器中的事件处理程序
- 用url ajax传递参数到控制器
- Mean Stack——Angular将参数从控制器传递到$resource对象
- 将一个字符串作为javascript函数参数从控制器传递给局部视图