我有一个动态页面,用户可以填写某些字段。这些用户都将在WordPress博客上拥有一个帐户。我想让他们直接将网页生成的内容发布到博客上。我不想将他们的密码存储在服务器中,所以我想用JQuery做客户端。
我查看了标准的jQuery.post方法和rpc plugin,但我没有设法使它们正常工作。例如,我最近的尝试是这样的:
wprpc = $.rpc('http://blog.wordpress.com/xmlrpc.php', 'xml', callback);
function callback(server) {
answer = server.newPost(0,'user','pass','<struct><title>TestRPC</title></struct>');
alert(answer);
}
和绝望的人:
$.post('http://blogurl.com/xmlrpc.php', { blogid: 0, username: "user", password: "pass", struct: "<struct><title>Test</title></struct>" }, function(data) {alert(data);}, 'xml');
但是它默默地失败了(甚至没有调用回调)。
你会怎么做?
答案 0 :(得分:2)
您无法使用jQuery或任何其他JavaScript技术制作跨域POST
请求。这是因为出于安全原因需要same origin
策略。您能够实现此目的的唯一方法是通过与jQuery代码相同的域,子域,协议和端口上的服务器代理。
不确定您使用的服务器技术,但您可以查看Ben Alman的Simple PHP Proxy。
答案 1 :(得分:2)
虽然原始政策会像Doug指出的那样让你失望,但你可以在一台服务器上安装一个脚本,将结果发布到另一台服务器上,这是一种代理。这有点像黑客,但它确实有效。我个人使用PHP和cURL来做这件事。