-3

私はこのようなコードを持っています:

$('#message').load('conversation.php?link=projects/living room/room');

このコードを実行すると"syntax error, unrecognised expression"、Chrome のエラー コンソールに表示されます。

しかし、次のように同じコードを実行すると:

$('#message').load('conversation.php?link=projects/livingroom/room');

これはうまくいきます。これらの 2 つの行の唯一の違いは、最初の行では作品にスペースがあり (リビング ルーム)、2 行目では単語にスペースがないことです (リビングルーム)。

ここで何が起きてるの。なぜ .load() はスペースを入れるとエラーを表示し、スペースがない場合はエラーを表示しないのですか?

4

1 に答える 1

1

上記のコメントで @Matt Ball が指摘しているように、$.load()が必要のない URL の特別な解釈を持っている場合は$.load()、要件により適したものに置き換えることをお勧めします。この場合、適切なコールバックを含む$.get()の方がニーズに適しています。

この場合、問題の一部がスペースを含む URL にあることは明らかです。

ただし、スペースを含む URL の部分はデータ パラメーター内にあり、一貫性と信頼性を高めるために、パラメーターから URL を自分で構築しようとするのではなく、jQuery 関数にパラメーターとして提供する必要があります。

$.get('conversation.php',
   {link: 'projects/living room/room'}, 
   function(data){ $('#message').html(data) }
 );
于 2013-08-13T04:22:35.470 に答える