Ajax.Requestでクエリー付URLを送信する

  • 投稿日:
  • by
  • カテゴリ:

いや~、はまったはまった。。。

Ajax.Requestで現在のページのURLを送信しようとして以下のようなスクリプトを書いてみたのです。

var msec = (new Date()).getTime();
var url = 'http://www.multiburst.net/****/get.php';
var pars = 'url='+document.URL;

var myAjax = new Ajax.Request(
url,
{
method: 'get',
parameters: pars+"&c="+msec,
onComplete: showResponse
}
);

が、普通の静的なページはいいのです。

仮に「http://hogehoge/index.php」というURLを表示したときは、きちんと、

http://www.multiburst.net/****/get.php?url=http://hogehoge/index.php

とリクエストされます。

しかし動的なページ「http://hogehoge/index.php?offset=5」を表示したら、

http://www.multiburst.net/****/get.php?offset=5

とリクエストしてしまいました。

なんでだろう~、といろいろ試してみた結果、URL中の「?」をURLエンコードしないとだめな感じです。

結果、以下のようなスクリプトになりました。

var msec = (new Date()).getTime();
var url = 'http://www.multiburst.net/****/get.php';
var pars = 'url='+(document.URL).replace("?","%3f");

var myAjax = new Ajax.Request(
url,
{
method: 'get',
parameters: pars+"&c="+msec,
onComplete: showResponse
}
);

う~ん、こんなことしなくても、もっとスマートなやり方ってあるんでしょうか?
きっとあるんでしょうね~(^^;)