2013-01-18 76 views
0

我在我的javascript中有一个ajax调用,它以json的形式返回一些响应,并将json的值重定向到另一个jsp页面..在重定向的jsp页面中,我得到了url选项卡中的整个json ..如何避免这种情况。 .. 这里是js文件我的Ajax调用...如何隐藏此URL的参数?

var cols="PRIORITY,USER_ID,PARTICIPANT_TYPE,CREATION_DATE,ASSIGN_TO_USER_DATE,START_WORK_DATE,DUE_DATE,OPERATION,ORDER_VK,SENDER_TYPE,SENDER_ID,ORDER_ID,FLAGS"; 
    var ioArgs = { 
                 url: "./DynamicDBServlet", 
                 content: { TABLE_NAME:'CWPWORKLIST',WHERE_CONDN:cond,COLUMNS:cols}, 
                 handleAs: "json", 
                 load: function(response) { 
                 alert("new "+new String(response)); 
                  window.location.href = "worklist.jsp?PRIORITY="+response; 
                 }, 
                 error: function(error) { 
                  alert("An unexpected error occurred: " + error); 
                 } 
               }; 
+0

在POST中使用'POST'替代'AJAX请求'上的'GET' – DON

+0

alert(“new”+ new String(response)); => alert(“new”+ new String(response.url)); –

回答

4

替换此行:

window.location.href = "worklist.jsp?PRIORITY="+response; 

有:

openWindowWithPost("worklist.jsp",'height=300px,width=300px,top=200px,left=500px,scrollbars=no,sizable=yes,toolbar=no,statusbar=no','title',param); 

,然后有以下功能:

function openWindowWithPost(url, windowoption, name, params) 
{ 
     var form = document.createElement("form"); 
     form.setAttribute("method", "post"); 
     form.setAttribute("action", url); 
     form.setAttribute("target", name); 
     var input = document.createElement('input'); 
     input.type = 'hidden'; 
     input.name = "PARAM"; 
     input.value = params; 
     form.appendChild(input); 
     /*for (var i in params) { 
      if (params.hasOwnProperty(i)) { 
       var input = document.createElement('input'); 
       input.type = 'hidden'; 
       input.name = i; 
       input.value = params[i]; 
       form.appendChild(input); 
      } 
     }*/ 
     document.body.appendChild(form); 
     window.open(url, name, windowoption); 
     //alert("inside openpost"); 
     form.submit(); 
     document.body.removeChild(form); 
} 

和读取的值使用的名称参数去worklist.jsp ......

1

您现在正在使用GET发送您PRIORITY变量。使用POST!

您将不得不创建一个由单个隐藏输入组成的表单,将响应放在所述输入的value属性中,并将其操作点的表单提交给worklist.jsp。

+0

已经在使用xhrPost了... var deferred = dojo.xhrPost(ioArgs); – Rachel

+0

@Gung Foo是对的:这不是关于你的AJAX请求,而是关于你的window.location.href。这会导致GET请求。你需要用Gung Foo描述的解决方案替换* this *,然后你再也没有URL中的参数。 –

+0

我以某种方式假定这将是明确的。 :) –