2012-03-18 4 views
1

javascriptを使用してGoogle APiのaccess_tokenを取得しようとしていて、常にエラーメッセージ:invalid_requestが届きました。私のコードがあります:Google Api get access_tokenリクエストはinvalid_requestを返します

var options = { 
    url: tokenURL, 
    type: "POST", 
    headers: { "Content-type": "application/x-www-form-urlencoded"}, 
    dataType: "json", 
    data: { 
     "code":successCode, 
     "client_id": clietId, 
     "client_secret": clientSecret, 
     "grant_type": "authorization_code", 
     "redirect_url": "urn:ietf:wg:oauth:2.0:oob" 
    }, 
    complete: function (e) { 
     alert(e.status); 
    }, 
}; 

$.ajax(options); 

また、簡単なhtml形式でPOSTリクエストを行いました。

<form method="post" action="https://accounts.google.com/o/oauth2/token"> 
<input name="code" type="text" value="##code##" /> 
<input name="client_id" type="text" value="##client_id##" /> 
<input name="client_secret" type="text" value="##client_secret##" /> 
<input name="grant_type" type="text" value="authorization_code" /> 
<input name="redirect_uri" type="text" value="urn:ietf:wg:oauth:2.0:oob" /> 

<input type="submit" /></form> 

JavaScriptのリクエストに何が間違っているかわかりません。いくつかのパラメータやヘッダーがありませんか?

+0

はFirebugのを使用して、あなたは私がバイオリンを使用してみましたし、データを設定することにより、クッキー – dldnh

+0

対フォームから作る要求の違いを見るためにネット]タブを見てみてくださいあなたが言ったように、要求はしても送信されません: 'VARオプション= {URL \t \t \t: 'https://accounts.google.com/o/oauth2/token'、 \t \t \tタイプ: "POST"、 \t \t \tヘッダー:{"コンテンツタイプ": "application/x-www-form-urlencod ED "}、 \t \t \tデータ型: "JSON"、 \t \t \tデータ "コード=コード&CLIENT_ID =のclientId&client_secret = clientSecret&REDIRECT_URI = myuri&grant_type = authorization_code"、 \t \t \t完了:機能(E){ \t \t \t \t警告(e); \t \t \t \t alert(e.status); \t \t \t}、 \t \t}; \t \t $ .ajax(options); ' – pauliusnrk

答えて

0

data(最初の例では)のエンコードがcontent-typeと一致していないようです。

dataのエンコーディングはapplication/jsonと思われますが、指定されたコンテンツタイプはapplication/x-www-form-urlencodedです。

dataのエンコードを変更して、URLエンコードする必要があります。

data: "code=successCode&client_id=clientId&client_secret=clientSecret&grant_type=authorization_code&redirect_url=urn:ietf:wg:oauth:2.0:oob" 
+0

以外の任意の違いに気づいていなかったAJAXリクエスト – erdomester

関連する問題