6

c# を使用して特定の Web サイトにリダイレクトしたいと考えています。私は次のようなコードを書きました:

HTML:

 <button id="Buy" class="k-button">Button</button>

脚本:

    $("#Buy").live('click', function () {
        $.ajax({                      
        url: "/Home/Redirect",
        data: JSON.stringify
        ({

        }),
        cache: false,
        dataType: "json",                       
        success: function (str) {
        },
        type: 'POST',
        contentType: 'application/json; charset=utf-8'
        });
      });

c#:

   public ActionResult Redirect()
    {
        Response.Redirect("http://www.google.com");          
        return Json("suc",JsonRequestBehavior.AllowGet);
    }
4

3 に答える 3

6

302 エラーが発生する ajax 投稿でリダイレクトを行うことはできません。あなたがすべきことは、コントローラーメソッドからURLを返すことです

public ActionResult Redirect()
{
    return Json(the_url);
}

次に、クライアントコードからリダイレクトします。

$.ajax({ 
    // your config goes here
    success: function(result) {
        window.location.replace(result);
    }
});
于 2013-05-02T06:05:45.117 に答える
1

これは、jQuery がリダイレクト命令を取得し、何もしないためです。リダイレクトはサーバーではなくブラウザによって処理されることに注意してください。

completeAJAX 呼び出しにコールバックを追加して、リダイレクト命令を処理してみてください(たとえば、successコールバックの後):

complete: function(resp) {
    if (resp.code == 302) {
        top.location.href = resp.getResponseHeader('Location');
    }
}

これは、メソッドが返す 302 を処理し、リダイレクトを実行する必要があります。または、von v が示唆するように、JSON で URL を返します。

于 2013-05-02T06:06:38.120 に答える
0

コントローラーで、

別のウェブサイトにリダイレクトしたい場合は、単純に like を使用できます。

public ActionResult Redirect()
{
        //return View();
        return Redirect("http://www.google.com");
}
于 2013-05-02T06:14:42.267 に答える