0

関数を実行し、JSON 応答を呼び出し元のページにポストする Web API を取得しました。

これは標準の Web API の動作であり、美しく機能します。

次に、コントローラーを変更して、ポストバックに加えて、Web API 呼び出しの結果を (JSON で) 表示できる呼び出し元の Web サイトのページにユーザーがリダイレクトされるようにします。

したがって、基本的には、(1) サーバー側で JSON の結果をページにポストバックし、Web API から同じページにリダイレクトします (2) 呼び出し元のサイトで、ポストバックされた JSON を表示したい。

どうすればいいですか?

私はすでに何時間も試しました...例:

            using (WebClient client = new WebClient())
            {
                client.Headers.Add("Content-Type", "text/json");
                client.Headers.Add("Accept", "text/json");
                try
                {
                    ErrorText = client.UploadString(redirectURL, "POST", JsonConvert.SerializeObject(orderresponse));
                    Response.Redirect(redirectURL);
                }
                catch (WebException err)
                {
                    ErrorText = err.Message;  //Todo - write to logfile
                }

            }
4

1 に答える 1

0

サーバーでリダイレクトを行う代わりに、適切な HTTP ステータス コードを使用してリダイレクトを行うようにクライアントに指示します。例えば:

public HttpResponseMessage Post(MyModel model)
{
    // handle the post
    MyResult result = ...;

    // redirect
    var response = Request.CreateResponse<MyResult>(HttpStatusCode.Moved, result);
    response.Headers.Location = new Uri("http://www.yourdomain.com/redirectURI");
    return response;
}
于 2013-11-14T16:03:24.950 に答える