意外とk2が使えるようになりました。
結局、新しいデザインを用意してみたものの、お蔵入りになりそうな気配ですね。
ちまちまと手直ししているわけですが、サイドバーの設定や、アーカイブのページで「Permission denied to call method XMLHttpRequest.open」なるエラーに遭遇。
どうにか使えるようにするべく、いろいろとやってみました。
まずは、このエラーについて。
XMLHttpRequestといえば、Ajaxで一番最初に出てくる奴。
詳しい説明はこのあたりでもご覧ください(舌っ足らずな僕が説明するより1000倍わかりやすそうなので)。
で、着目すべきポイントは、脚注からの引用ですが、この部分。
# XMLHttpRequestは、セキュリティを考慮して、リクエストを送信できるのは同一ドメイン内に制限されています。もし、別ドメインとのやりとりが必要ならサーバー側で処理して受け取るか、旧来のダイナミックロードな技を使う必要があります。
つまるところ、「Permission denied to call method XMLHttpRequest.open」と出るのは、違うドメインからXMLHttpRequestを使おうとしていると取られたから。
どこの馬の骨ともわからん奴にそんなことやらせませんよ、と言っているわけですね。
確かに、言われてみれば、さくらインターネットをもともと使っているわけで。
それに取得したドメイン噛ませてるんだから、こうなってしまってトーゼン、ってわけですね(前はならなかったような気がするけど)。
と、原因がわかったところで、修正方法(仮)。
(仮)なのは、根本解決には至らなかったせい。

ログイン画面→各種設定→一般設定から、
【WordPress のアドレス】を本来のサーバードメインのアドレスにします。
そうすると、サイドバーのウィジェットがエラーが出ずに使えるようになりました。
やっぱり、ドメインとかそういうのの問題だったらしいですね。
ただ、こうすると、今度はk2のアーカイブページやら、記事の投稿・編集など(今やりながら気づいた)が同じエラーになってしまうというミラクル。
元からあんまり違いを理解して使っていたわけじゃないけれど、どうやら、単純にここいじりゃいいってもんでもないらしいです。
結局、サイドバーを直したいときだけ、WordPressのアドレスを一時的に差し替えて、それが終わったら、元に戻す、ということでごまかしてみました。orz
この辺の挙動の違いって、一般設定のところにちっちゃく書いてある、get_settings(’siteurl’) の値とget_settings(’home’) の値の取り方に関係がある予感がしますね。
サイドバーの設定を表示させるphpで上の2つでgrepかけてみたら、根本的に直せるかも。

0 Responses to “WordPressでXMLHttpRequestが出た場合”