2011-01-21 17 views
0

私はpostメソッドを通じてJSONを受け入れるURLを持っています。クッキーと状態を返します。JQueryからJavaへのJSONの送信

私が次のことを試してみると(ユーザー名とパスワードは私が送信しようとしているJSONでなければなりません)、何の反応もありません。

<script> 
$.post("https://login-url",{"username":"user","password":"1234567890"}, 
function(data){ 
    alert("Data Loaded: " + data); 
    }, "JSON");  
</script> 

UPDATE:

DavidDorwardさんのコメントを以下の後に私のコードは次のようになります。

<script> 
$.ajax({ 
    url: 'https://loginurl', 
    type: 'POST', 
    data: '{"username":"user","password":"1234567890"}', 
    contentType: 'application/json', 
    dataType: 'text', 
    success: function(msg){ 
    alert("Data Loaded win: " + msg);} 

});

</script> 

私のエラーを少し詳しく説明すると、ステータスとクッキーが返されます。このページのFirefoxを読み込んでFirebugを使って見ると、応答はなく、ヘッダーにはCookie情報がロードされません。それはURLをヒットするように見えますが、これは私がまだそのデータの問題を考える。ユーザー名とパスワードが間違っていると、エラーを返しますが、そうではありません。それは一貫して "null"を返します。

、ログインURLのみをJSON形式で「ユーザー名」と「パスワード」を期待している、mattbの質問に答えると、文字列データ型

+0

://ログイン-URLがでJSONデータを期待しますが、必ずしもcontentTypeの

データ型を含める必要はありませんか?それとも別の 'username'と' password'パラメータが必要ですか? –

+0

詳細を更新matt! – Elliot

答えて

0

あなたのデータはJSONとしてこの方法を送ることが文句を言いません。

'dataType:サーバーから予想されるデータの種類。' http://api.jquery.com/jQuery.post/

試してみてください。

{"json": '{"username":"user","password":"1234567890"}'}

+0

私はそれが問題だと思ったが、あなたが言ったことを試してみると、何も変えていないようだ。あなたはデータjson形式を作るのは確かですか? – Elliot

1

あなたはJSON本体とPOSTリクエストを作るjQueryのを使用したい場合は、あなたではなく、その後単純選択肢のいずれかをajax methodを使用する必要があります。 contentTypeを "application/json"と指定し、dataプロパティに割り当てる前にJavaScriptオブジェクトをJSONを含むStringに変換します。

+0

Davidさん、コードを更新しましたが、まだ問題があるようです。投稿を更新しました。何か案は? – Elliot

0

AJAXのクロスドメインの問題があるような気がします。たとえば、実行しているページがhttpを使用していて、アクセスしようとしているURLがhttpsを使用している場合、この問題が発生します。

結果は、あなたが記述するものが多いではありません: 'JSON' への応答

http://en.wikipedia.org/wiki/Same_origin_policy

よろしく、 トーマス・カーン

+0

私たちは両方ともhttpsですが、私はhttps:// www2で、https://app.sandboxです。私は問題を引き起こすのに十分だと思います...可能な解決策/回避策を知っていますか? – Elliot

+0

Spotify(http://developer.spotify.com/)メタデータAPIへのリクエストを作成したソリューションをコーディングするとき、私はプロキシとして動作するASP.NETを使用してWebサービスを構築しました。これにより、自分のドメイン内でAJAXリクエストを作成し、Spotify APIから外部データを取得することができました。私はこれが最も簡単な方法かどうかは分かりません。 – tkahn

+0

あなたはJSONP(http://en.wikipedia.org/wiki/JSONP#JSONP)を見ることができますが、問題がクロスドメインに接続されていると仮定した場合、問題が解決するかどうかはわかりませんポリシー確認するために、jQuery AJAX構文を再度確認してください。エラーが発生したときに呼び出されるハンドラを登録していない限り、jQueryのAJAXポストはサイレントモードで失敗します:http://api.jquery.com/ajaxError/ – tkahn

0

変更パラメータデータ型。 HTTPリクエストパラメータの名前が何であるかを「JSON」

+0

この設定は機能しません。 'contentType'は送信データのフォーマットを設定します。 Autorはjsonを送信するので、 'contentType'を' json'に設定します。 'dataType'はサーバによって送信されるデータのフォーマットを設定します。また、データをプレーンテキストに変換するのに問題はありません。 (http://api.jquery.com/jQuery.ajax/) –

関連する問題