0

理由はわかりませんが、非常に単純な Jquery の投稿が正しく機能しません。以下のように index.php と temp.php があります。if 条件の前にアラートを出すと、データが「OK」を返すため、まだ「NOT RETURNED OK」と表示されます。理由はわかりません。

index.php:

<? session_start(); ?>
<!DOCTYPE HTML>
<meta charset="windows-1250">

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-   ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js">              </script>
 <link rel="stylesheet" type="text/css" href="style.css" />

 <script>

function do_post(item)
{     
  $.post("temp.php", {par:item}, function(data,status){
  //alert("Data: " + data + "\nStatus: " + status);
  if(data=="ok")
  {
   alert('RETURNED OK');
   //location.reload();
  }
  else
  {
   alert('NOT RETURNED OK');
  }
 });
}

</script>

<body>
<a href="#" onclick="do_post('whatever');">click</a>
</body>
</html>

temp.php:
<? echo "ok"; ?>

アイデアをお寄せいただきありがとうございます。

4

2 に答える 2

0

適切な応答ヘッダーのコンテンツ タイプを使用して応答で JSON を使用するか、jQuery .post に期待する内容を明示的に伝えることをお勧めします。

$.post("temp.php", {par:item}, function(){}, 'text');

PHPスクリプトで単純にエコーしている場合は、ヘッダーにコンテンツタイプを指定していません.jQueryは、それが何を扱っているかを推測する必要があるため、正しく解析されない可能性があります. 改行も探してください。

于 2013-06-26T18:18:47.970 に答える
0

ローカルホストでコードを実行しましたが、正常に動作しています。ただし、php の開始タグがサーバーによって解釈されなかったため、php という単語をタグに追加する必要がありました。

于 2013-06-26T18:21:40.473 に答える