在网站上使用Firebug,我注意到了这个JSON POST请求:
POST /xxxx/yyy
Host test.it
User-Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,application/json
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Content-Type text/plain; charset=UTF-8
Referer http://test.it/preview/2.1284/2.1988/2.16289
Content-Length 186
Cookie userId=61080064567894730d450a494fee0af5
Pragma no-cache
Cache-Control no-cache
{id:4,method:"contentBridge.setComponentValue",params:["7.92961", "name", "Welcome", "", {"javaClass": "java.util.HashMap", "map": {"en": false, "es": false, "de": false, "fr": false}}]}
问题是知道他们正在使用jQuery,jsonrpc和polopoly cms,是否可以发布相同的JSON数据,但是可以从我的网络服务器上托管的页面发布?
答案 0 :(得分:2)
是
此处的标题并不重要,除了顶部的HTTP动词POST
。
相关位是JSON字符串:它看起来像JSONRPC调用 - 这是具有id
,method
和params
的外部对象。这些参数是一个数组,最后一个参数似乎是一个JSON序列化的Java类。
您可以使用jQuery轻松自己使用它:
$.ajax({
url: 'yourserver.com/service',
dataType: 'json',
data: {
id:4,
method:"contentBridge.setComponentValue",
params:[
"7.92961",
"name",
"Welcome",
"",
{
"javaClass": "java.util.HashMap",
"map": {
"en": false,
"es": false,
"de": false,
"fr": false
}
}
]
},
success: function() { /* */ }
});
如果此脚本从浏览器运行(例如作为Ubiquity脚本),您应该没问题,但如果它在不同站点的页面上运行,则会出现很多问题。我认为默认情况下所有浏览器都会阻止跨域AJAX调用。