2015-10-28 3 views
0

Вот мой тестовый контроллерНеправильный PHP Стоимость от контроллера к Ajax

public function actionRegister() 
{ 
    $data2 = array('name' => 'God', 'age' => -1); 
    return json_encode($data2); 
} 

И это Ajax запрос (URL правильно)

$(".simple").click(function() { 
    $.ajax({ 
     type: 'post', 
     url: 'register', 
     dataType: 'json' 
    }).done(function (data) { 
     console.log("done"); 
     console.log(data); 
    }).fail(function (jqXHR, textStatus, error) { 
     console.log("fail"); 
     console.log(jqXHR.responseText); 
    }); 
}); 

Почему я получаю 'не в состоянии? И jqXHR.responseText пуст.

+0

Какой код статуса вы получаете? Как выглядит ответ? Что вы получаете, если вы посещаете URL-адрес вручную? – Quentin

+0

Какие рамки вы используете? – Squeegy

+0

Действительно ли что-то вызывает функцию PHP 'actionRegister()'? Пожалуйста, покажите нам недостающие фрагменты кода. Кроме того, что такое имя файла php для кода? –

ответ

0

Поскольку вы указываете dataType как json, вызов ajax завершится неудачно, если возвращаемая строка недействительна json. И так как ваш responseText пуст, очень вероятно, что PHP не будет выполнен так, как вы думаете.

В своем обращении к AJAX вы указываете URL как 'register'. Вероятно, это должно быть «register.php», верно?

1

Вы называете эту функцию PHP на register.php?

Кроме того, для Ajax вы должны использовать echo, а не return.

Так что я хотел бы сделать

public function actionRegister() { 
    $data2 = array('name' => 'God', 'age' => -1); 
    echo json_encode($data2); 
} 

, а затем вызвать его из register.php.