1

私はリダイレクトするwebapiコントローラーを持っています:

 var response = this.Request.CreateResponse(HttpStatusCode.Redirect);

 response.Headers.Add("Location",
     "https://www.dropbox.com/1/oauth/authorize?oauth_token=" + pars["oauth_token"]
     + "&oauth_callback=http://localhost:2638/index.html#/tasks/compose-task/");

 return response;

そしてそれをjavascriptから呼び出します:

    $.ajax("/api/dropbox/get_request_token", { dataType: 'json' })
    .done(function (data)
    {
        alert(ko.toJSON(data));
    })
    .fail(function (err) {alert(ko.toJSON(err));});

[ネットワーク]タブには次の情報が表示されます。

GET http://localhost:2638/api/dropbox/get_request_token HTTP/1.1
Accept: application/json, text/javascript, */*; q=0.01
Referer: http://localhost:2638/
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.20 (KHTML, like Gecko) Chrome/25.0.1337.0 Safari/537.20

ただし、dropbox.comにリダイレクトされることはありません。代わりに、fail()になります。

私は何かが足りないのですか?

4

2 に答える 2

1

「Location」ヘッダーのプロパティはすでにあります。試す:

response.Headers.Location = new Uri( "http://google.com");

わたしにはできる。

于 2012-12-02T21:59:08.867 に答える
0

次のように、HttpStatusCodeをリダイレクトに設定する必要があります。

var response = new HttpResponseMessage(HttpStatusCode.Redirect);

response.Headers.Location = new Uri("http://www.dropbox.com");

return response;

詳細: http: //en.wikipedia.org/wiki/HTTP_302

于 2013-09-17T21:47:18.167 に答える