Ajax.Requestでクエリー付URLを送信する
Category : Ajax
いや~、はまったはまった。。。
Ajax.Requestで現在のページのURLを送信しようとして以下のようなスクリプトを書いてみたのです。
が、普通の静的なページはいいのです。
仮に「http://hogehoge/index.php」というURLを表示したときは、きちんと、
とリクエストされます。
しかし動的なページ「http://hogehoge/index.php?offset=5」を表示したら、
とリクエストしてしまいました。
なんでだろう~、といろいろ試してみた結果、URL中の「?」をURLエンコードしないとだめな感じです。
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
}
);う~ん、こんなことしなくても、もっとスマートなやり方ってあるんでしょうか?
きっとあるんでしょうね~(^^;)

コメントする