2012-04-09 46 views
1

jsonのgetJSONメソッドを使用してjson-rpcリクエストをリモートサーバーに送信しようとしています。ここに私のコードは次のとおりです。ここでjsonのgetJSON経由のJson RPCリクエスト

json_string=JSON.stringify(obj); 
var jqxhr = $.getJSON("https://91.199.226.106/ssljson.php?jsoncallback=?", json_string, function(data){ 
    alert("aaaaaa"); 
}); 
jqxhr.error(function() { alert("error"); }) 

は私のJSON-RPCの文字列の例です:

{"jsonrpc":"2.0","method":"merchant_check","params":[{"hostID":150999,"orderID":116,"amount":"150","currency":"051","mid":15001038,"tid":15531038,"mtpass":"12345","trxnDetails":""}],"id":116} 

そして、ここでは、私が取得エラーです:

{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"Invalid JSON-RPC 2.0 request error (-32600)"}} 

私が何であるかを取得can`t問題。私は何か間違っているのですか?たぶん私はPHPとjqueryではなく要求を送信する必要がありますか?それではどうしたらいいですか?

+0

他の(重複した)質問をここで閉じる/書き直すことなくこの質問をしたのは、http:// stackoverflow.com/questions/9988733/json-rpc-error-32600です。 http:// stackoverflow.com/questions/9871972/json-rpc-string' –

+0

jQueryタグが追加され、JSONPタグが削除されました。 –

答えて

1

名としてgetJSONあなたが好きPOSTを使用する必要がJSON-RPCを使用したい場合はGET要求を送信しますと言う:

var json_string = JSON.stringify(obj); 
$.post('https://91.199.226.106/ssljson.php', json_string, function(response) { 
    // process response 
}, 'json'); 

が、あなたのページには、同じサーバー上にある場合にのみ動作します、 CORSを使用している場合を除きます。

0

と言って、メッセージエンベロープがJSON-RPC 2.0仕様に従って無効であるとか、JSON自体に解析エラーがあるとします。

実際には、多くのサービスがさまざまな状況でこのエラーを返します。 (例:認証トークンが見つからないなど)

メッセージに固有の問題がありますか?

ウェブサービスでGETリクエストを受け入れますか? (代わりにPOSTにする必要がありますか?)

実際にウェブサービスには?jsoncallback=?ビットが必要ですか?これは通常、JSON-RPCではなくJSONP要求のためです。このサービスは実際のJSON-RPCエラーステータスを返すので、GETパラメータが必要な場合は本当に驚いています(Webサービスの設定によっては)エンベロープの一部として解釈される可能性があります。無効なJSON-RPCリクエスト!

merchant_checkは、唯一のパラメータとして1つ以上のトランザクションの配列を取っていますか?そうでない場合は、paramsの構文が間違っています。 paramsArrayとしたいサービスもあれば、Objectのサービスが必要なサービスもあります。どのような場合には、SMD /ドキュメンテーションを参照してください。

サービスでは、要求のためにmime-typeとしてtext/json(または他のもの)が必要な場合があります。

推奨アプローチ

これらの問題を回避するために、あなたはおそらくDojoツールキット内に提供された1つのように、専用のJSON-RPCライブラリを使用して開始する必要があり、およびWEB-によって公開SMDを使用しますそれがある場合はサービス。 (JSON-RPCメッセージを手作業で作成することをお勧めします)。

+0

「POST」に関するビットが追加されました –

関連する問題