6

次のコードを使用してリクエストを送信しています。

var ajaxHandler = new XMLHttpRequest();

ajaxHandler.onreadystatechange = function()
{
   if(ajaxHandler.readyState == 4)
   {
      console.log(ajaxHandler.responseText);
   }
}

ajaxHandler.open("POST", "filterCards", true);
ajaxHandler.send("category="+category+"&tag="+tag);

PHP側では、これがあります:

var_dump($_POST);

ただし、カテゴリとタグの両方の変数に値がある場合でも、コンソールは空の配列をログに記録します。投稿で何が間違っていますか?

4

2 に答える 2

6

送信呼び出しの前に追加setRequestHeaderします。

ajaxHandler.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajaxHandler.send("category="+category+"&tag="+tag);

交換:

   if(ajaxHandler.readyState == 4)
   {
      console.log(ajaxHandler.responseText);
   }

   if(ajaxHandler.readyState == 4 && ajaxHandler.status==200)
   {
      console.log(ajaxHandler.responseText);
   }

お役に立てれば。

于 2012-04-19T05:19:57.310 に答える
1

web-nomadによる回答は正しいですが、空の配列をまだ受け取っている場合は、サーバー構成でファイル拡張子を隠しているかどうかを思い出してください。その場合、「file.extension」へのリクエストは「file」にリダイレクトされ、POST データは失われます。

これは小さなエラーですが、見落としがちです。エラーが URL ではなくコードにあると推測するのは簡単です。特に、配列がまったく返されないため、URL が正しいと考える人がいるかもしれません。

于 2019-10-08T19:21:23.923 に答える