Я работаю над Wordpress и у меня странная ошибка.Это мой код jQuery
add_to_my_cart: function () {
$(document).on('submit', 'form.form-submit', function (event) {
event.preventDefault();
var data = $(this).serializeArray();
$.ajax({
url : wp_custom_settings.ajax,
type : 'POST',
data : data,
dataType: 'html',
success : function (code) {
code = parseJSON(code);
window.location.href = code.redirect;
}
});
});
}
Выше приведено, когда я отправляю форму и передаю некоторые данные в функцию PHP.Тем не менее, я получаю 500 internal server error
на HTTP-запрос admin-ajax со следующим в журналах apache:
Premature end of script headers: admin-ajax.php, referer: my.domain.here
AH01070: Error parsing script headers, referer: my.domain.here
Я использовал error_log($message)
на каждом этапе процесса, и я не нашел ни одногопроблема.Самым последним шагом является возврат JSON-запроса.
if ( ! function_exists( 'my_send_json' ) ) {
function my_send_json( $data ) {
error_log("DONE");
@header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
echo '<!-- WP_AJAX_START -->';
echo wp_json_encode( $data );
echo '<!-- WP_AJAX_END -->';
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
wp_die();
} else {
die;
}
}
}
Я вижу на debug.log
строку DONE
, но HTTP-запрос имеет пустой ответ.Я также пытался удалить $data
и просто вернуть это
echo wp_json_encode( array( 'status' => 'success', 'redirect' => 'my.domain.here' ));
Но все так же.Я не могу придумать какой-либо другой способ его отладки.