jquery で putできない


airで google webmaster tool の一括操作をできるツールを作っていて、
ほぼできてはいるのですが、サイトの認証の部分だけどうしてもできなくて。

サイト認証には REST の PUT を使うんですが(唯一)
そのPUTがおかしい?
jquery を使ってRESTなAPIにXMLを送りつけてDELETEとか
で書いたようにDELETEは動かしていたんですが、
PUTもできる と書きつつもどうもうまくいかないので。

$.ajax({
    url : url,
    type : "DELETE", PUTも可(ブラウザに依存)
    contentType : ‘application/atom+xml; charset=UTF-8′, 設定しないとapplication/x-www-form-urlencodedになっちゃうので必須
    processData :false, 設定しないとapplication/x-www-form-urlencodedなGETクエリに変換にしちゃうので必須
    data: xml_document, ←XMLドキュメント本体
    beforeSend : function(request) {
        request.setRequestHeader(’Authorization’, ‘GoogleLogin auth=’ + token); ←Googleだとこんなかんじ
    },
    error : function(XMLHttpRequest, status, error){
        ~~~
    },
    success: function(result) {
        ~~~
    }
});

こんな感じで書いてはいたのですが、
RESTクライアントで投げたらOkなものが
このコード経由だとうまくいかない。

具体的には 400 Premature end of file エラーになる。

これは送信するXMLファイルにエラーがあったりするっぽいんだけど、
それはRESTクライアントで問題ないことは確認済み。

なんでなんだろうなぁと。

リサーチしてると
application/x-www-form-urlencodedとかで躓いたりしてるひとはいたんだけど、
それはそれで別のエラーになるし
Air経由でこっちがPUTしてるヘッダーの確認方法がないので、
完全にいきづまった/(^^)\

jqueryのPUTのソースもよんだけど
別に特別なことはなにもしてないしなぁ。

とりあえず今のところ登録、一括サイトマップ登録、削除とかができるから
よしとしよう。。

じゃーだめなんだろうけどw

まあ片手まで作ってるので、しばらく様子見かなぁ。。


Leave a Reply