在javascriptPost方法中隐藏查询字符串
我有以下javascript:在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
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
的回调。