0

我想通过 jsonp 使用 google 闭包调用 web 服务,因为我正在执行跨域 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"

我怎么能做到这一点,我搜索了谷歌,但我找不到关于 ?this 的适当文档。

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 回答