2013-01-18 157 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

我以某種方式假定這將是明確的。 :) –