0

パラメータ(空白を含む)でテキストをロード関数に渡そうとしていますが、機能しないようです。

現在私はこれをやっています:

var text ="hello world this is an example";
$("#selector").load("http://"+ document.domain + "/myfunction/"+text);

それを行う方法はありますか?

jQueryではなくURLで関数を直接呼び出すと、うまく機能します。

ありがとう。

4

2 に答える 2

4

「テキスト」はencodeURIでエンコードする必要があります。

var text = encodeURI('hello world this is an example');

これにより、空白がURL互換の文字に置き換えられます。これは、URLに直接アクセスしているときにブラウザが内部で行うものです。

于 2012-10-09T14:49:53.727 に答える
1

URLで関数を直接呼び出すと、ブラウザでうまく機能する場合があります。しかし、それは将来の保証ではありません。関数を使用してURLをエンコードする必要がありますencodeURI。ユーザー指定のデータを追加した後。

var text ="hello world this is an example",
url = encodeURI("http://"+ document.domain + "/myfunction/"+ text);
$("#selector").load(url);

また、サーバー側では、このような操作を実行して、ユーザーが入力したデータを取り戻すことができます。

$data = urldecode($_SERVER['REQUEST_URI']);
// This will return
// /myfunction/hello world this is an example
于 2012-10-09T15:14:08.567 に答える