2011年5月18日水曜日

chrome で XMLHttpRequest の時に、INVALID_STATE_ERR (11)

0

XMLHttpRequest
下記サイトを参考に、XMLHttpRequest で POST リクエストを発行する処理をやってると、
INVALID_STATE_ERR (11)てのが発生。

なんだと思ってググっていると、
INVALID_STATE_ERR (11)
If an attempt is made to use an object that is not, or is no longer, usable
という記述を発見。
英語をマジマジと見ていると何となく原因が浮かんできた(!)
open する前に setRequestHeader を呼んでいたからだ。

誤り
httpRequest.onreadystatechange = processResult;
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.open('POST', 'http://webos-goodies.jp/', true);
httpRequest.send('param1=value1¶m2=value2');

正しくは
httpRequest.onreadystatechange = processResult;
httpRequest.open('POST', 'http://webos-goodies.jp/', true);
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.send('param1=value1¶m2=value2');

これで、問題なく動いた!

XMLHttpRequest の使い方 - WebOS Goodies: "XMLHttpRequest"

0 コメント:

コメントを投稿