Создайте пост Wordpress с xmlrpc и jQuery - PullRequest
3 голосов
/ 13 февраля 2010

У меня есть динамическая страница, где пользователь может заполнить некоторые поля. Все эти пользователи будут иметь учетную запись в блоге WordPress. Я хотел бы разрешить им напрямую публиковать контент, созданный веб-страницей, в блоге. Я не хочу хранить их пароль на сервере, поэтому я хочу сделать это на стороне клиента с JQuery.

Я посмотрел как стандартный jQuery.post , так и плагин rpc , но мне не удалось заставить их работать. Например, мои последние попытки были примерно такими:

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');

но он молча провалился (обратный вызов даже не вызывается).

Как бы вы это сделали?

Ответы [ 2 ]

2 голосов
/ 13 февраля 2010

Несмотря на то, что исходная политика запутает вас, как указывал Дуг, на одном сервере вы можете разместить скрипт для отправки результатов на другой, что-то вроде прокси. Это немного взломать, но это сработает. Я лично использовал бы PHP и cURL, чтобы сделать это.

2 голосов
/ 13 февраля 2010

Вы не можете сделать междоменный запрос POST, используя jQuery или любую другую технологию JavaScript. Это связано с политикой same origin, необходимой по соображениям безопасности. Единственный способ добиться этого - через прокси-сервер на том же домене, поддомене, протоколе и порте, что и код jQuery.

Не уверен, какую серверную технологию вы используете, но вы можете посмотреть Simple PHP Proxy от Ben Alman.

...