如何使用wp_ajax_Response进行前端错误报告?

时间:2016-01-19 作者:Keenan Diggs

我已经准备好了wp挂钩代码,现在我想将错误消息发送回前端,放在警报框或html元素中。

//my plugin  
add_action(\'wp_ajax_track_upload\', \'track_upload\');

function track_upload() {
  (!is_uploaded_file($_FILES[\'file\'][\'tmp_name\'])) {
    //report error to front end
    // i.e. send ajax response
  }
}

// my front end form
<form method="post" action="
<?php echo admin_url( \'admin-ajax.php?action=musistic_track_upload\' )?>"
enctype="multipart/form-data">
  <input type="file" name="file" accept="audio/*">
  <input type="submit" value="upload audio" name="submit"
  id="submit_to_your_elders">
</form>
现在缺少什么?我需要一个js文件来处理ajax吗?我读了《法典》的文章https://codex.wordpress.org/Class_Reference/WP_Ajax_Response, 但它并没有明确说明如何与中的wp\\u ajax\\u响应相结合。如何发送检索这样的响应?一个与我的具体情况相关的代码示例将极大地帮助像我这样的视觉学习者。

1 个回复
SO网友:Howdy_McGee

就我个人而言,我喜欢这样做作为错误报告。当PHP函数出错时,设置一个错误标题,该标题将返回到JQuery,并显示一条字符串消息:

header( \'HTTP/1.1 400 Empty Attachment\' );
echo \'Could Not Upload File.\';
exit;
将此分类为error 您需要的标题HTTP/1.1 400 但在那之后,你可以放任何类型的文本。Here\'s a list of response codes. 然后在你的$.ajax().fail() 函数您可以以有意义的方式显示这些错误:

$.ajax( {
    url: \'/wp-admin/admin-ajax.php\',
    type: \'POST\',
    data: {
        action      : \'your_function_hook_thing\',
        some_data   : some_kind_of_data
    },
    dataType: \'text\'
} )
.success( function( data ) {
    /* You win! */
} )
.fail( function( data ) {
    /* You lose, show error */
    console.log( data.responseText );
    console.log( \'Request failed: \' + data.statusText );
} );
Thedata.responseText 是你的回声和data.StatusText 将是您决定添加到header() PHP中的函数。

相关推荐

尝试在WordPress中实现AJAX注释,遇到WP错误

我试图在WordPress中为我的评论实现Ajax,使用this tutorial. 但我在将教程中的代码集成到自己的预构建主题时遇到了问题。问题是,我要么得到一个WP错误“检测到重复注释;看来你已经说过了!”或标准500错误。以下是我得到的:下面是我对ajax的评论。js文件如下所示: * Let\'s begin with validation functions */ jQuery.extend(jQuery.fn, { /* * check i