2013年10月27日日曜日

OLE はひろいーな おおきーなー

OLE に関わって初めて知ったけど OLE の仕様って巨大なんだなぁ.名前付き引数とかイベント通知とか初めて知ったけど,まぁ使わないし実装しなくていいや,というわけで,Excel は動いたので本命の XMLHttpRequest を動かすことにする.といってもほとんどのメソッド・プロパティはそのままで動くので,新規に実装すべきは onreadystatechange の callback くらい.

OLE サーバ側から JavaScript 関数を呼ぶってどうやるんだ? と思っていたら,答えはほとんどここに載っていた.要は onreadystatechange プロパティには IDispatch を登録して,XMLHttpRequest からコールバックされるときは Dispatch ID = 0 で Invoke されるみたい.Invoke されたら改めて JavaScript の Function Call をすれば良いと.

でやってみたら,なんか中途半端に動かねぇ(゜ーÅ)ほろり
相手先サーバ (Google) から「405 The requested method -1 is inappropriate...」ってレスポンスが返ってきた.-1 ってなんだよwww 普通ここ POST とか GET でしょ? と悩むこと 1時間,スクリプトの open メソッドを眺めていたら,
xhr.open( "GET", url, true );
true ってもしかして -1 (0xFFFFFFFF) なんじゃね? とふと気づいて
xhr.open( true, url, "GET" );
ってやったら動いた(;´д⊂)Invoke 時の引数の順番が逆になってた…

という訳で,Google Maps のジオコーディングが無事動いた.これがやりたかっただけなのにすげー回り道したwww

0 件のコメント:

コメントを投稿