Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascriptPost方法中隐藏查询字符串_Javascript_Asp.net_Ajax - Fatal编程技术网

在javascriptPost方法中隐藏查询字符串

在javascriptPost方法中隐藏查询字符串,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我有以下javascript: var link = AjaxLocation + "/createDataSet.aspx"; $j.post(link, null, function() { window.location.replace("/admin/SavedDataSet_edit.aspx?businessId="+data); }, "html"); createDataSet.aspxpage返回SavedDataSet\u edit.as

我有以下javascript:

  var link = AjaxLocation + "/createDataSet.aspx";
    $j.post(link, null, function() {
        window.location.replace("/admin/SavedDataSet_edit.aspx?businessId="+data);
    }, "html");
createDataSet.aspx
page返回
SavedDataSet\u edit.aspx的businessId
page

每当页面重定向到
SavedDataSet\u edit.aspx
页面时,浏览器的地址栏中将显示querystring

如何隐藏查询字符串??如果我在浏览器中隐藏查询字符串,那么如何在
SavedDataSet\u edit.aspx
页面中获取它呢


谢谢..

隐藏它的唯一方法是将其传递到SavedDataSet_edit.aspx,将其存储在会话中,然后将该页面重定向到自身,而不使用查询字符串。或者使用两个页面之间的不同页面在会话中保存。或者,您可以加密该值并传递加密的查询字符串,前提是数据是来自服务器的值


即使您可以这样做,也要确保检查资源的权限,以查看用户是否被授权。

隐藏该资源的唯一方法是将其传递到SavedDataSet_edit.aspx,将其存储在会话中,然后将该页面重定向到自身,而不使用查询字符串。或者使用两个页面之间的不同页面在会话中保存。或者,您可以加密该值并传递加密的查询字符串,前提是数据是来自服务器的值


即使您可以这样做,也要确保检查资源的权限,以查看用户是否已获得授权。

window.location.replace
不是POST请求,因此它无法发送POST数据。因此,您的选择是:

  • 继续使用查询字符串路由,只需使用显示的值即可,尽管听起来这不是一个现实的选项
  • 将查询字符串数据放入表单中,并按照各种答案中所述提交表单
  • 利用您已经对
    createDataSet.aspx
    进行的AJAX调用,通过在
    createDataSet.aspx
    中存储
    businessId
    数据,然后在
    createDataSet.aspx
    中从
    Session
    缓存中检索,来存储您想要在
    SavedDataSet\u edit.aspx
    页面上检索的值您现在位于
    SaveDataSet\u edit.aspx
    页面\u Load

    window.location.replace
    不是POST请求,因此无法发送POST数据。因此,您的选择是:

  • 继续使用查询字符串路由,只需使用显示的值即可,尽管听起来这不是一个现实的选项
  • 将查询字符串数据放入表单中,并按照各种答案中所述提交表单
  • 利用您已经对
    createDataSet.aspx
    进行的AJAX调用,通过在
    createDataSet.aspx
    中存储
    businessId
    数据,然后在
    createDataSet.aspx
    中从
    Session
    缓存中检索,来存储您想要在
    SavedDataSet\u edit.aspx
    页面上检索的值您现在位于
    SaveDataSet\u edit.aspx
    页面\u Load

    有很多方法可以实现这一点:您可以使用cookies(我不推荐),您可以发布到我们的页面隐藏字段,然后使用请求对象的FormCollection属性检索它。要发布到您的页面,您需要动态创建一个表单,然后提交该表单,代码如下所示:

    var link = AjaxLocation + "/createDataSet.aspx";
        $j.post(link, null, function() {
    
            $("<form action='/admin/SavedDataSet_edit.aspx'><input name='businessId' type='hidden' value='"+ data +"'></form>").appendTo('body').submit();
    
    
        }, "html");
    
    var link=AjaxLocation+“/createDataSet.aspx”;
    $j.post(链接,null,函数(){
    $(“”)。appendTo('body')。submit();
    },“html”);
    
    实现这一点的方法有很多:您可以使用cookies(我不推荐),您可以发布到我们的页面隐藏字段,然后使用请求对象的FormCollection属性检索它。要发布到您的页面,您需要动态创建一个表单,然后提交该表单,代码如下所示:

    var link = AjaxLocation + "/createDataSet.aspx";
        $j.post(link, null, function() {
    
            $("<form action='/admin/SavedDataSet_edit.aspx'><input name='businessId' type='hidden' value='"+ data +"'></form>").appendTo('body').submit();
    
    
        }, "html");
    
    var link=AjaxLocation+“/createDataSet.aspx”;
    $j.post(链接,null,函数(){
    $(“”)。appendTo('body')。submit();
    },“html”);
    
    为什么要使用查询字符串执行
    POST
    ?为什么不直接设置请求的
    data
    ?OP不是用查询字符串
    POST
    ,而是用
    window.location.replace
    是一个
    GET
    ,这是
    POST
    createDataSet.aspx
    的回调。为什么用查询字符串执行
    POST
    ?为什么不直接设置请求的
    数据
    ?OP并不是使用查询字符串
    执行POST
    窗口.location.replace
    是一个
    GET
    ,它是
    POST
    createDataSet.aspx
    的回调。