我有以下javascript:
var link = AjaxLocation + "/createDataSet.aspx";
$j.post(link, null, function() {
window.location.replace("/admin/SavedDataSet_edit.aspx?businessId="+data);
}, "html");
createDataSet.aspx
页面返回SavedDataSet_edit.aspx
页面的businessId ...
每当页面重定向到SavedDataSet_edit.aspx
页面时,查询字符串就会显示在浏览器的地址栏中。
如何隐藏Querystring?如果我从浏览器隐藏查询字符串然后如何在SavedDataSet_edit.aspx
页面中获取它?
谢谢..
答案 0 :(得分:1)
有很多方法可以实现:您可以使用cookie(我不建议)您可以发布到我们的页面隐藏字段,然后使用Request对象的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");
答案 1 :(得分:0)
隐藏它的唯一方法是将其传递给SavedDataSet_edit.aspx,将其存储在会话中,然后让该页面在没有查询字符串的情况下重定向到自身。或者在两者之间使用不同的页面来保存会话。或者,您可以加密该值并传递加密的查询字符串,前提是数据是来自服务器的值。
确保即使您可以这样做,也要检查资源的权限,以确保用户已获得授权。
答案 2 :(得分:0)
window.location.replace
不是POST请求,因此无法发送POST数据。所以你的选择是:
createDataSet.aspx
进行的AJAX调用,并在SavedDataSet_edit.aspx
页面上存储您想要检索的值,方法是将businessId
数据存储在Session
中在createDataSet.aspx
中,当您在Session
Page_Load
时,在SaveDataSet_edit.aspx
缓存中检索它。