У меня есть следующая Javascript функция
http_post = function (url, data, success) {
var json_data = JSON.stringify(data);
return $.ajax({
type: "POST",
url: url,
data: json_data,
dataType: "json",
contentType: "application/json;charset=utf-8",
success: success,
fail: function(sender, message, details) {
console.log(sender, message, details);
}
});
}
Который я так называю
$('#teammate_search_input').keyup(delay(function (e) {
var value = $(this).val();
http_post("{{ \Path::href('roster', 'search_name') }}", {name: value}, function(data) {
console.log(data);
});
}, 500));
Который поражает этот PHP скрипт
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$download = $this->model('download');
$results = $download->search_teammate($_POST['name']);
echo json_encode(['term' => $_POST['name'], 'results' => $results]);
}
Что должно просто вытянуть список пользователей с именем, совпадающим с вводом. Это все работает нормально (я получаю ожидаемый ответ), за исключением того, что term
всегда установлен на null
, поэтому он возвращает список всех пользователей.
Результат :
{term: null, results: Array(5)}
Похоже, что данные не передаются по запросу.
То, что я пробовал:
- Изменено
{name: value}
на {name: 'test'}
(2-й параметр вызова функции) - Удалена строка
var json_data
и заменено data: json_data,
на data: data
Почему мои данные не отправляются по запросу