Google リーダー内ですべてのフィード アイテムを既読としてマークするスクリプトを作成しようとしています。4 つの変数を API リンクに投稿するだけの簡単なものである必要があります。ただし、400 エラーを返さずに HTTP POST を Google に正常に作成できる唯一の方法は、次のような単純な HTML FORM POST です。PHP cURL を試しましたが、Google から 400 エラーが表示され、不正なクライアント リクエストが行われたことを示しています。
<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) AJAX 送信で HTML フォームを (黙って) 送信できないのはなぜですか?