我正在尝试使用AJAX上传文件,我正在挂接我的函数,以便在admin AJAX中调用它们。我不能让它工作得很艰难,我也不知道到底出了什么问题,也不知道该去哪里看。然而,我通过修改管理ajax缩小了范围。php一点:
// Require an action parameter
if ( empty( $_REQUEST[\'action\'] ) ) {
$response = array(
\'error\' => \'no action parameter\',
\'req\' => var_export( $_REQUEST, true )
);
wp_send_json( $response );
wp_die( \'0\', 400 );
}
我的AJAX请求中有数据类型:“json”,因此会调用我的success函数(如果我删除$response声明和对wp\\u send\\u json的调用,则会调用错误一,将整个页面作为响应返回,状态文本为“parserror”)。总之,下面是我的AJAX脚本:
$( \'#user-file\' ).change( function( event ) {
var formData = new FormData();
formData.append( "userfile", $(this)[0].files[0] );
formData.append( "action", "vibesoft_files_upload" );
formData.append( "_wpnonce", vbsoft.nonce_upload );
console.log( formData );
$.ajax({
type: "post",
url: vbsoft.ajax_url,
data: formData,
contentType: "multipart/form-data",
processData: false,
dataType: \'json\',
success: function( data ) {
if ( data.error != \'none\' ) {
console.log( \'Error: \' + data.error );
console.log( \'Request: \' + data.req );
return;
}
它不是整个函数,它被包装在(function($) { ... })(jQuery);
所以我可以用$代替jQuery。这个console.log( \'Request: \' + data.req );
输出:Request: array(
)
我还尝试输出$\\u POST和$\\u文件,它们也是空数组。如果我使用(而不是JSON返回)返回它们:var_dump( $_REQUEST );
exit;
我明白了array(0) {}
回到控制台。所以,是的,我不知道为什么我得到一个空数组。。。