0

クロスドメインWebサービスを実行しているため、jsonp経由でGoogleクロージャーを使用してWebサービスを呼び出したいです。

そして、私は次の方法でそれを呼び出しています

var url = "http://myurl/";
var jsonp = new goog.net.Jsonp(url);
jsonp.send(
{"name":"jessi","action":"initaction","gameId":"123"},
callback, callbackfailed);

ただし、このメソッドでは、URL は次のように通常の get メソッド文字列として変換されます。

http://myurl/?name=jessi&action=initaction&gameId=123

しかし、このURLを次の方法でjsonオブジェクトとして送信する必要があります "name":"pari123","action":"initaction","gameId":"slotreel3"

これを行うにはどうすればよいですか。Google を検索しましたが、これに関する適切なドキュメントが見つかりませんでした。

4

1 に答える 1

2

オブジェクトのエンコードに使用される関数 goog.net.Jsonp.addPayloadToUri_ は次のように述べています。

  • @param {!Object} ペイロード エンコードされる値名ペアのマップ。
  • 値は配列として指定できます。この場合、クエリ パラメータ
  • 値ごとに作成されます。例:
  • {"foo": [1,2]} は "foo=1&foo=2" にエンコードされます。

これはまさに起こっていることです。では、URL をクエリで初期化してみませんか? 例えば

var url = "http://myurl.php?" + goog.json.serialize({"name":"jessi","action":"initaction","gameId":"123"});
var jsonp = new goog.net.Jsonp(url);
jsonp.send()

テストされていませんが、おそらくこれで動作します。

よろしく、

レネ

于 2012-07-02T12:55:28.817 に答える