试图从AJAX帖子重定向

时间:2017-09-20 10:42:35

标签: c# asp.net ajax http redirect

我正在尝试从AJAX调用webmethod,它正在重定向到这样的URL:

HttpContext.Current.Response.Redirect(StoreCode.ToLower() + "/App/home.html?EventClick=True", false);

AJAX电话:

function TokenPost() {
    var token = $('#hdnToken').val();
    $.ajax({
        url: 'http://localhost/QDC/WebServices.asmx/ChkToken',
        type: 'POST',
        data: "{data:'" + token + "'}",
        contentType: 'application/json; charset=UTF-8',
        datatype: 'JSON',
        success: function(response) {

        },
        error: function(response) {
            alert(response.d);
        }
    });
}

但是我的AJAX调用没有重定向到那个url.Thanks提前。

1 个答案:

答案 0 :(得分:1)

我认为在HttpPost方法中这是不可能的。但是您可以从服务器返回HttpPost方法中的链接。如果ajax返回成功,则使用Javascript代码重定向。

        $.ajax({
            url: 'http://localhost/QDC/WebServices.asmx/ChkToken',
            type: 'POST',
            data: "{data:'" + token + "'}",
            contentType: 'application/json; charset=UTF-8',
            datatype: 'JSON',
            success: function (link) {
                window.location.href = link;
            },
            error: function (link) {
                alert(response.d);
            }
        });

在Server方法中(我在ASP.NET MVC中使用它):

string link = "https://...Your Link";

return Json(link, JsonRequestBehavior.AllowGet);

如果您使用的是WebMethod,我认为您也可以只返回字符串。

[System.Web.Services.WebMethod]
public static string ChkToken(string data)
{
    string link = "...";
    // Do things
    return link;
}

这次ajax返回可以是这样的,

            success: function (link) {
                window.location.href = link.d;
            },