Я пытаюсь сделать довольно простой запрос AJAX на данный момент, просто чтобы проверить функциональность, маршрутизируя мои вызовы через admin–ajax.php. Тем не менее, каждый раз, когда я пытаюсь запустить запрос AJAX, я получаю ошибку 404, в которой говорится: «Неисследованный синтаксис: Неожиданный токен <». WTF? Похоже, это делается из-за карота в моем DTD … Я прошел через свой код, но не могу понять, что я здесь делаю неправильно … Я довольно новичок в работе с AJAX, поэтому любой помощь будет оценена.
Php в functions.php не является ничем …
function shows_callback(){ echo '<h1>Test</h1>'; }
Вызов ajax …
$(".tabs .btn").click(function(e) { e.preventDefault(); $.ajax({ url:"/wp-admin/admin-ajax.php", type: "GET", dataType: "html", cache: false, data: { action: "shows" }, success: function(resp) { $(".ajax-show").append(resp); }, error: function(xhr, status, error){ var err = JSON.parse(xhr.responseText); console.log(err); } }); });
.$(".tabs .btn").click(function(e) { e.preventDefault(); $.ajax({ url:"/wp-admin/admin-ajax.php", type: "GET", dataType: "html", cache: false, data: { action: "shows" }, success: function(resp) { $(".ajax-show").append(resp); }, error: function(xhr, status, error){ var err = JSON.parse(xhr.responseText); console.log(err); } }); });
Что я могу делать неправильно?
EDIT: полная ошибка:
Uncaught SyntaxError: Unexpected token <
Я думаю, что это связано с типом dataType, но я объявил html, поэтому я не понимаю …
success
и error
– это функции , а не свойства функции AJAX. Рабочий код:
$(".tabs .btn").click(function(e) { e.preventDefault(); $.ajax({ url:"/wp-admin/admin-ajax.php", type: "GET", dataType: "html", cache: false, data: { action: "shows" } }) .success(function(resp) { $(".ajax-show").append(resp); }) .error(function(xhr, status, error) { var err = JSON.parse(xhr.responseText); console.log(err); }); });
.$(".tabs .btn").click(function(e) { e.preventDefault(); $.ajax({ url:"/wp-admin/admin-ajax.php", type: "GET", dataType: "html", cache: false, data: { action: "shows" } }) .success(function(resp) { $(".ajax-show").append(resp); }) .error(function(xhr, status, error) { var err = JSON.parse(xhr.responseText); console.log(err); }); });
Также следует отметить:
Уведомление об изъятии: обратные вызовы jqXHR.success (), jqXHR.error () и jqXHR.complete () удаляются с jQuery 3.0. Вместо этого вы можете использовать jqXHR.done (), jqXHR.fail () и jqXHR.always ().
Убедитесь, что вы установили
define( 'WP_DEBUG', false );
Другие уведомления и возможные ошибки могут вызвать 404.