php - 使用 HTTP 请求解析 admin-ajax 中的脚本标头时出错
问题描述
我正在使用 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
关于 admin-ajax HTTP 请求,在 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' ));
但还是一样。我想不出任何其他方式来调试它。
解决方案
推荐阅读
- reactjs - 静态NextJS动态展示组件
- python - 以高优先级运行子进程
- performance - Magento2 可配置产品慢
- c# - 使用 Moq 和 xUnit 模拟和测试 LogError 消息
- c# - 从 C# 中的 JSON 将字符串插值到变量中
- haskell - 如何在归纳图上统一映射?
- database - 如何在数据库表中搜索字符串并在laravel中检索匹配的列名
- python - 如何使用 RegEx 检查 JSON 的最后一个键的值是否以逗号结尾?
- javascript - 如何将链函数从一个类添加到另一个类?
- apache-spark - 如何避免一次又一次地重新评估pyspark数据帧上的每个转换