2011-06-27 4 views
1

私はこのjQuery AJAXを使ってGoogleのClientLoginを呼び出しています。jQueryのajaxコールでテキスト/プレーンを受信する

$.ajax({ url:"https://www.google.com/accounts/ClientLogin", 
     type:"POST", 
     data:{'Email': 'myusername', 
       'Passwd': 'mypassword', 
       'service': 'fusiontables', 
       'accountType': 'HOSTED_OR_GOOGLE'}, 
     dataType:"jsonp", 
     success:function(data){ console.log("Hurrah!"); }, 
     error:function(e){ console.log(e); } 
}); 

問題は、ClientLoginが、テキスト/プレーンではなくJSONを返さないということです。だから私は、次のエラーを取得する:

SID=blahblah 
LSID=blahblah 
Auth=blahblah 

のClientLogin:3キャッチされないでSyntaxError:予期しないトークンILLEGAL。

このレスポンスを解析し、Auth =値を取得するにはどうすればよいですか?

+0

URLに?alt = jsonを追加しようとしましたか、それともデータとして渡しましたか? –

+0

あなたはどのブラウザから試していますか?現代のブラウザの中には、セキュリティ上の理由からAJAXをサードパーティのアプリケーションに呼び出さないものがあります。 – BlueBird

+0

@Antonio私はちょうどしました。うまくいかないようです。 @Muneer Google Chrome。私はmenifestファイルを変更することができますが、これはhtmlファイルのスクリプトです。 – Ram

答えて

2

JSON-Pは、クライアント側のJavaScriptと第三者のウェブサイトから任意のデータを読んでいないできsame origin policy

あなたを回避するために、JavaScriptでデータをラップします。

必要に応じて、独自のサーバーでデータをプロキシします。

+0

私はそれを試しました。しかし、その後、XMLHttpRequestにhttps://www.google.com/accounts/ClientLoginを読み込めません。 Origin-nullはAccess-Control-Allow-Originによって許可されていません。 – Ram

+0

ああ、私はそれに気付かなかった。答えを更新しました。 – Quentin

1

この目的で専用のPHPプロキシを使用することができます。あなたのドメインを使ってPHPプロキシへのAjax呼び出しを行います。次に、php curl関数を使用してGoogleから認証を取得します。

関連する問題