0

我正在尝试进行 AJAX 调用,这是我第一次使用 AJAX,我的代码如下:

$.get( "validate.php", { 'userinput':'x'}, function(response) {
    if( response.status ) alert( "Matches found" );
    else alert( "No matches" );
});

vaidate.php:

<?php
$user_input=$_GET['userinput'];
//print_r($user_input);
if(!is_null($user_input)) exit( '{ "status": true }' );
else exit( '{ "status": false }' );
?>

如果我访问我的 validate.php,我会收到“未定义的索引”错误。这样做的正确方法是什么?

4

1 回答 1

1

注释掉测试代码后,php 看起来很好:

<?php
  $user_input=$_GET['userinput'];
  //print_r($user_input);
  if(!is_null($user_input)) exit( '{ "status": true }' );
  else exit( '{ "status": false }' );
?>

您需要指定您期望的 JSON,最简单的方法是使用 getJSON

$.getJSON( "validate.php", { 'userinput':'x'}, function(response) {
    if( response.status ) alert( "Matches found" );
    else alert( "No matches" );
});

jQuery 的其他替代方案是

$.get( "validate.php", { 'userinput':'x'}, function(response) {
    if( response.status ) alert( "Matches found" );
    else alert( "No matches" );
},"json");

或在 php 中设置 contentType 标头:

<?php
  $user_input=$_GET['userinput'];
  //print_r($user_input);
  header('Content-type: application/json');
  if(!is_null($user_input)) exit( '{ "status": true }' );
  else exit( '{ "status": false }' );
?>
于 2013-05-09T18:14:27.280 回答