如何隐藏此URL的参数?

时间:2013-01-18 08:48:14

标签: html ajax dojo

我在我的javascript中有一个ajax调用,它返回一些响应作为json并将json值重定向到另一个jsp页面..在重定向的jsp页面中,我在url选项卡中获取整个json ..如何避免这种情况... 这是我在js文件中的ajax调用...

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);
                                                        }
                                                };

2 个答案:

答案 0 :(得分: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);
 }

并使用名称PARAM ......

将值读取到worklist.jsp

答案 1 :(得分:1)

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

您必须创建一个由单个隐藏输入组成的表单,将响应放在所述输入的value属性中,并将具有该操作点的表单提交到worklist.jsp。