Ajax查询字符串参数为null

时间:2015-11-09 08:59:28

标签: javascript ajax struts-1

在UI上有一个删除按钮,点击它我必须调用一些服务方法,它会调用从DB中获取一些值,我必须在弹出窗口中显示它。

我必须调用Action类的特定方法。所以我将任务ID和命令名称(方法名称)添加到查询字符串中。但是在行动课上我做了

的request.getParameter( “指令”) - >这导致null

请找到javascript方法。

function ajaxGetDependentTask(id)
{
    try
    {
        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")  // For Old Microsoft Browsers
    }
    catch (e)
    {
        try
        {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")  // For Microsoft IE 6.0+
        }
        catch (e2)
        {
            xmlHttp = false   // No Browser accepts the XMLHTTP Object then false
        }
    }
    if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
    {
        xmlHttp = new XMLHttpRequest();        //For Mozilla, Opera Browsers
    }
    var url = "/admin/TaskEdit.do?id=" + id + "&command=findDependenciesFor";
    xmlHttp.open("GET", url, true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.onreadystatechange = handleServletResponse;
    xmlHttp.send();
}

在这里,我发现表单已提交,查询字符串为null。

1 个答案:

答案 0 :(得分:0)

如果实际提交了for,那么您在服务器上看到的请求参数就是表单内的输入,而不是这里写的内容......

您应该使用jQuery,并且在form.submit()中,您应该构建自己的ajax调用(下面的示例),并且不要忘记return false;以阻止表单提交。< / p>

您应该使用jQuery ajax进行ajax调用,以便于使用和跨浏览器兼容性:

function ajaxGetDependentTask(id){
  $.ajax({
    url: '/admin/TaskEdit.do',
    type: 'GET',
    data: {
      id: id,
      command: 'findDependenciesFor'
    },
    success: handleServletResponse,
    error: function(){console.log('something bad just happened');}
  });
}
$('#yourButtonId').on('click', function(){
  var id = $(this).val(); // assuming that's how you get the 'id' for your example code above...
  ajaxGetDependentTask(id);
});
$('#yourFormId').submit(function(){return false;});