【问题标题】:Create a Wordpress post with xmlrpc and jQuery使用 xmlrpc 和 jQuery 创建 Wordpress 帖子
【发布时间】:2010-02-13 17:28:21
【问题描述】:

我有一个动态页面,用户可以在其中填写一些字段。这些用户都将在 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');

但它默默地失败了(甚至没有调用回调)。

你会怎么做?

【问题讨论】:

    标签: jquery ajax wordpress xml-rpc


    【解决方案1】:

    虽然正如 Doug 指出的那样,源策略会让您感到困惑,但您可以在一台服务器上使用脚本将结果发布到另一台服务器,这是一种代理。这有点骇人听闻,但它会起作用。我个人会使用 PHP 和 cURL 来完成。

    【讨论】:

    • 问题是它需要这台服务器查看用户密码(这是 xmlrpc 请求的一部分),我宁愿避免这种情况......感谢你们两个指点我同源问题,我想我将不得不放弃该功能并让用户现在复制/粘贴。以后我可能会编写自己的扩展程序。
    【解决方案2】:

    您不能使用 jQuery 或任何其他 JavaScript 技术发出跨域 POST 请求。这是因为出于安全原因需要 same origin 策略。您能够完成此操作的唯一方法是通过与 jQuery 代码相同的域、子域、协议和端口上的服务器代理。

    不确定您使用的是哪种服务器技术,但您可以查看 Ben Alman 的 Simple PHP Proxy

    【讨论】:

    • 哦,这太糟糕了......但是,例如,允许发布到您的博客(如deepestsender.mozdev.org)的 Firefox 扩展如何工作?我无法触摸 WordPress 服务器(它应该适用于标准的 wordpress.com 博客)。你能找到解决我问题的其他方法吗?
    • 对不起我之前的评论。我认为单一来源的东西在服务器端,但它似乎在浏览器端。我想我唯一的解决方案是编写自己的扩展。可能很有趣:)。
    猜你喜欢
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 2023-03-30
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多