У меня много проблем с отладкой AJAX-запроса.Тот же вызов хорошо работает на более старой версии сайта на том же сервере.Это кусок кода, который отправляет данные из Wordpress в Infusionsoft.Я проверил, и это все подключение нормально.Я также установил плагин заголовков CORS, думая, что это может быть проблемой, но, очевидно, нет.С помощью следующего я получаю parseerror:
var r=confirm("Are you sure you wish to create the '" + profile.title + "' email template?");
if (r==true) {
$('#mailout_buttons').hide();
$('#mailout_progress').show();
var request = $.ajax({
type : "post",
dataType : "jsonp",
url : ajaxurl,
data : $.extend(profile, {action: "create_weekly_email"}),
xhrFields: {
withCredentials: true
},
error: function(XHR, textStatus, errorThrown)
{
alert(textStatus);
},
success: function(response) {
if(response.type == "success") {
$('#mailout_buttons').show();
$('#mailout_progress').hide();
$('#mailout_success').show();
}
else {
alert("Error with template creation")
}
}
});
request.done(function(msg){ console.log(msg)});
request.fail(function(jqXHR, textStatus){ console.log("Request failed: " + textStatus)});
, и если я заменю ошибку на:
error: function(e)
{
alert(JSON.stringify(e), null, 4);
},
, я получу:
{"readyState": 4, "responseText": "create {\" type \ ": \" success \ "}", "status": 200, "statusText": "OK"}
Я также пытался опубликовать тексти HTML.Используя html, он говорит мне, что JSON не очень хорошо сформирован, хотя при использовании https://jsonformatter.curiousconcept.com/, он говорит, что это так.Используя текст, он падает на остальное в обратном вызове успеха.
РЕДАКТИРОВАТЬ 1: я опубликовал функцию create_weekly_email ниже.Create_weekly_email вызывает get_weekly_email, в котором есть SQL-запрос.Я жестко запрограммировал в нем пару переменных, которые возвращают результаты как в phpmyadmin, так и в responseText var.Я вижу, что возвращен какой-то искаженный HTML (который создает офисный документ), и длина HTML варьируется.Я не хочу публиковать возвращенные данные здесь, но в этом последнем вызове отсутствуют все закрывающие теги.Иногда возвращаемая строка намного короче, что заставляет меня думать, что может быть какая-то проблема с тайм-аутом?
function create_weekly_email() {
if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
header("Location: " . $_SERVER["HTTP_REFERER"]);
exit;
}
$result = ["type" => "error"];
if($profile = filter_input_array(INPUT_POST, massemail_fields())) {
if($re = create_weekly_mail_template($profile)) {
$result = ["type" => "success"];
}
}
wp_send_json($result);
exit;
}