Ath*_*hul 7 asp.net ajax jquery
我正在制作这样的Ajax请求:
$(".box01 .selproduct").live("click", function(e) {
var color = $(this).parent('.box01').find('.color').val();
var size = $(this).parent('.box01').find('.size').val();
var pid=$(this).parent('.box01').find('.hdinput').val();
var pathname = window.location.pathname;
var data = { submit: "selected",size:size,color:color,pid: pid};
$.ajax({
type: "POST",
url: pathname,
data: data,
success: function(data) {
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
},
complete: function(data) {
}
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
在服务器端,我做了一些像这样的代码:
if (!string.IsNullOrEmpty(HttpContext.Current.Request.QueryString["pid"]))
{
var path = HttpContext.Current.Request.Url.AbsolutePath;
HttpContext.Current.Response.Redirect(path);
}
Run Code Online (Sandbox Code Playgroud)
Ajax POST工作正常.我可以在Mozilla的Web Developer Tools中看到,但是页面没有像我想象的那样被重定向到其他页面.谁能告诉我我做错了什么?
或者是不可能Response.Redirect通过Ajax 调用?
Pat*_*nes 12
是的,据我所知,你不能简单地从客户端检测重定向.参考其他答案如下:
您可以做的一件事是如何返回指示服务器端代码重定向的内容.像下面的JSON:
{
success: true,
redirect: true,
redirectURL = "http://something.com/path/to/good/stuff"
}
Run Code Online (Sandbox Code Playgroud)
如何在服务器端代码中实现上述功能取决于您.
然后在您的客户端代码中,您可以执行以下操作:
$.ajax({
type: "POST",
url: pathname,
data: data,
success: function(data) {
if(data.redirect) {
window.location = data.redirectURL;
}
},
Run Code Online (Sandbox Code Playgroud)
在WebMethod中调用Response.Redirect是不可能的.相反,你可以使用
success: function(data) {
window.location.href="path.aspx";
}
Run Code Online (Sandbox Code Playgroud)
在ajax成功功能.
如果页面名称本质上是动态的,请从webmethod返回pagename并使用它来重定向页面.
| 归档时间: |
|
| 查看次数: |
32659 次 |
| 最近记录: |