我有一个从jQuery Post方法(工作正常)调用的aspx页面(webforms),但是后面的代码中的Response.Redirect方法不会使用重定向的URL重新加载浏览器。但它实际上确实击中了URL。 我很确定这与从jQuery调用的页面有关,但不确定为什么会出现这种情况。
return
我逐步完成代码并且product_link正在运行(手动剪切并粘贴到浏览器中),并且正在调用远程页面(我正在测试与另一个具有日志记录的站点的链接)。 但是浏览器没有打开(试过FF,IE,Opera,Chrome)新的URL。
jQuery帖子:
protected void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
//lid = Validation.StripToGUID(ObjToGUID(Request.QueryString("lid")))
lid = Validation.StripToGUID(ObjToGUID(Request.Form["lid"]));
string sid = null;
if (lid.Length == 36)
{
//retrieve the link (and product data) from the database
LiveItem_Data.DBConnStr = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
LiveItem o = new LiveItem();
o = LiveItem_Data.GetLive_ItemFromLID(lid);
if (HTTPStuff.RemoteFileExists(o.product_link))
{
Response.Redirect(o.product_link, true);
}
else
{
//generate an error
}
}
}
}
我确认在IIS Express中启用了HTTPredirect功能(来自Visual Studio 2012)。难倒!
答案 0 :(得分:1)
我认为从jquery函数来看,它不会从服务器重定向页面,你必须在客户端本身这样做,即点击功能的成功部分
$('.popInfoHG').click(function () {
var ListID = $(this).parent().find('[id*=hidlid]').val();
$.post("redir.aspx", { lid: ListID }).success(function() {
//write the redirection code here
});
});
答案 1 :(得分:0)
我不认为你正在使用帖子权利。 Post用于进行隐藏服务调用,不会影响浏览器窗口。
如果您只想重定向浏览器窗口,并且redir.aspx将接受GET或POST,您可以使用window.location.href:
$('.popInfoHG').click(function () {
var ListID = $(this).parent().find('[id*=hidlid]').val();
window.location.href = "redir.aspx?lid=" + ListID;
});
如果redir.aspx不接受GET,我建议您在页面上创建一个隐藏的表单(带有隐藏的输入元素)并以编程方式发布。