使用谷歌闭包jsonp和发送json作为参数调用web服务

时间:2012-07-02 06:49:50

标签: jsonp google-closure

  

我想通过jsonp使用谷歌关闭调用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对象发送   “名称”: “pari123”, “动作”: “initaction”, “游戏ID”: “slotreel3”

     

我怎么能这样做,我搜索谷歌,我无法找到关于这个的正确文件。

1 个答案:

答案 0 :(得分:2)

用于编码对象的函数goog.net.Jsonp.addPayloadToUri_说:

  • @param {!Object} payload要编码的值名称对的映射。
  • 可以将值指定为数组,在这种情况下为查询参数
  • 将为每个值创建
  • ,例如:
  • {“foo”:[1,2]}将编码为“foo = 1& foo = 2”。

这正是发生的事情。那么,为什么不用查询初始化你的网址呢? e.g。

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

未经测试,但也许这有效。

此致