2010-09-27 156 views
0

我的.NET 3.5 Web Forms网站上有一个搜索页面,可根据用户的搜索参数将用户重定向到外部网站。我会重定向到:http://www.site.com/search.aspx?searchterm=Hello重定向到并将数据发布到外部页面

但现在他们正在改变网站,以便搜索参数作为POST参数传递,而不是在查询字符串中传递。所以该页面期待“searchterm”。

因此,我不仅需要重定向到外部页面,还必须将数据发布到页面。我不知道如何做到这一点,我不知道从哪里开始。

这是我可以在Web窗体中做什么而没有一些不好的解决方法吗?或者,也许它可以使用jQuery完成?

+0

的可能重复(HTTP://计算器。 com/questions/46582/response-redirect-with-post-instead-of-get) – 2010-09-27 17:35:15

回答

1

大多数浏览器都会明确否认这一点。像这样做一个跨服务器的帖子会导致安全问题。

+0

那么如果它在同一台服务器上呢? – Steven 2010-09-27 17:37:44

+0

您仍然需要从客户端执行此操作。只需将表单操作更改为指向所需的URL而不是执行服务器端重定向。 – Mike 2010-09-27 17:51:07

0

您可以为执行POST重定向到外部页面创建简单的JavaScript函数(动态生成并初始化表单对象并提交它)。 例如(值图案:= 1 & B = 2 & C = 3 ...):[?的Response.Redirect与POST而不是获取]

function bind(pageURL, values) { 
var form=document.createElement('form'); 
form.action= pageURL; 
form.target='_blank'; 
form.style.display = 'none'; 
form.method = 'POST'; 

var valuesSplit = node.get_value().toString().split("&"); 

    for (var i = 0; i < valuesSplit.length - 1; i++) { 
     var p = valuesSplit[i]; 
     var ps = p.split('='); 
     addParam(form, ps[0], ps[1]); 
    } 

document.body.appendChild(form); 
form.submit(); 
} 

function addParam(form,key,value){ 
    var input= document.createElement('input'); 
    input.name=key; 
    input.value=value; 
    form.appendChild(input); 
} 
相关问题