MT4管理画面エディタのAjaxインターフェースがドメインにシビアで困った
初めてMT4案件をやったときに、お客さんの環境で管理画面がどうにもこうにも異常な動作をして困ったけど、結果的には仕様だったというオチ。
結論から書くと、MT4の管理画面はmt-config.cgi内のStaticWebPathに定義した以外のドメインでアクセスすると、エディタのAjaxインターフェースが徹底的に動作しません。具体的に例を挙げると
mt-config.cgi
CGIPath http://www.hoobar.jp/mt/
StaticWebPath http://www.hoobar.jp/mt/mt-static
と定義したMT4システムの管理画面にアクセスする際
管理画面
http://hoobar.jp/mt/mt.cgi
でアクセスすると記事の新規作成または編集画面で、メニューのプルダウンが動作しない・[本文] や [続き] などのタブが反応しない・テキストボックスの入力編集が出来ないなど、エディタのAjaxユーザインタフェースが崩壊します。
いろいろ調べまわったところ、実はこれはMTの仕様上の問題で、シックス・アパートのサポート情報にもアップされているものでした。
エントリーの編集画面で、本文を編集出来ません
http://www.sixapart.jp/support/mt4/error/post_9.html
こちらではwww.hoobar.jp/mt/mt.cgiで管理画面にアクセスして、主要ブラウザでの動作確認もしていたのですが、お客さんがhoobar.jp/mt/mt.cgiでアクセスしてしまっていたため正常動作せず。ヤーバーババイ!って相当あせって危うくお客さんのPCの常駐プログラムが原因ではないかなど余計なことも考え始めていたところでした。
最近はwwwサブドメイン省略でのアクセスを許可というか設定しているサーバが多いと思うのですが、MT4案件ではリダイレクトの設定をちゃんとかけておいたほうが良いのですかね。
このエントリを書こうと思いつつタイミングを逃してオタオタしているうちにMTOSもMT4.1もリリースされてしまったのですが、この点はもしかしたら解消されているかも。
なんつーか、個人的には仕様という名の不具合だと思いたい。
2007.02.04 ドメイン名省略の絶対パス指定について
realog.orgのreaさんから情報いただきました。MT4.1でも同様の症状が発生してしまうが、コメントでAnonymousさんからいただいている
CGIPath /mt/
StaticWebPath /mt/mt-static
で回避できるとのことです。ただしこの場合はCookieの識別が出来ないためログイン情報を保持出来なくなるというデメリットもあり。
COMMENTS
ADD YOUR COMMENTMT というよりは、ajax の仕様上、ドメインが変わると正常な動作は見込めないのでは…と思います。
CGIPath /mt/
StaticWebPath /mt/mt-static
と記述することで回避できないでしょうか。
きっと解消されていないんだろうけど、なんでかな。技術的な要因なのか、セキュリティ的な要因なのか、そこまでシックスアパートには教えてほしい気もするなぁ。
>Anonymousさん
ご指摘ありがとうございます!Ajaxの非同期通信にドメインの縛りがあることは理解していたつもりだったのですが、今回の現象は非同期通信とは関係の無いインターフェース系の挙動(プルダウンとかタブの切換)に影響が出たもので驚いた次第です。それも当然のことだとしたらけっこう恥ずかしいエントリですね…。んーむ。ドメイン名省略の絶対パスによる設定は今度機会があったら試してみます!(このブログはまだ3.33なもので…。)
>double_k
理由が書いていない=仕様ってことで理解してますw。そろそろこのブログもMT4にアップグレードしなくては。
MTは拡張性高いですけど開発用としては少し面倒な点が多いですね(汗)
最近はもっぱらxoopsをベースにしてます。