Я пытаюсь написать сценарий, который помечает все элементы моего фида как прочитанные в Google Reader. Это должно быть так же просто, как размещение 4 переменных в ссылке API. Однако единственный способ успешно выполнить HTTP POST в Google без возврата ошибки 400 - это простой HTML FORM POST, как показано ниже. Я пробовал PHP cURL, но я получаю сообщение об ошибке 400 от Google, в котором говорится, что я сделал неверный клиентский запрос.
<form method="post" action="http://www.google.com/reader/api/0/mark-all-as-read">
<input type="hidden" name="s" value="user/10408189040522127442/state/com.google/reading-list" />
<input type="hidden" name="t" value="Your reading list" />
<input type="hidden" name="ts" value="<?php echo time(); ?>" />
<input type="hidden" name="T" value="<?php session_start(); echo $_SESSION['token']; ?>" />
<input type="button" value="Mark All As Read" /></form>
Отправка тех же сведений с помощью HTML FORM (как я пытался с cURL) работает нормально, успешно помечает все элементы как прочитанные, но поскольку FORM ACTION настроен на внешний сайт, вы будете перенаправлены на него при отправке. Чтобы обойти это, я попытался отправить AJAX FORM следующим образом, поэтому перенаправления нет, но это не работает и ничего не отправляется.
$(document).ready(function(){
$("input[type=button]").click(function() {
$.post($('form').attr("action"), $('form').formSerialize());
});
});
Кто-нибудь может посоветовать? 1) Почему cURL POST не работает, а простой HTML FORM POST работает? 2) Почему я не могу (молча) отправить HTML-ФОРМУ с отправкой AJAX?