对不起,因为标题不正确。我不明白为什么我在wordpress的AJAX请求中出现Uncaught TypeError: Illegal invocation
错误。非法调用错误(如果processData未设置,并且找不到操作处理程序,如果设置)对wordpress中的ajax请求
此代码作品:
JS
function updateDB(){
$.ajax({
url: '/wp-admin/admin-ajax.php',
type: 'POST',
data: {
action: 'det_lilla_exta
},
});
}
PHP(服务器脚本)
<?php
add_action('wp_ajax_det_lilla_extra', 'det_lilla_extra');
add_action('wp_ajax_nopriv_det_lilla_extra', 'det_lilla_extra');
function det_lilla_extra(){
echo "hi";
}
但如果我改变我的JS(以后可以通过发送图片fromdata object)
JS
function updateDB(){
var formData = new FormData();
formData.append('action', 'det-lilla-extra');
$.ajax({
url: '/wp-admin/admin-ajax.php',
type: 'POST',
data: formData,
});
}
然后我得到了Uncaught TypeError: Illegal invocation
错误。我做了一些googleing,发现为了防止你的数据被转换成字符串,你应该把processData
参数设置为false。像做此:
function updateDB(){
var formData = new FormData();
formData.append('action', 'det-lilla-extra');
$.ajax({
url: '/wp-admin/admin-ajax.php',
type: 'POST',
data: formData,
processData: false
});
}
但现在我只能从我的WordPress的PHP脚本收到0
这意味着它无法找到我的action
处理器。
所以我不知道该怎么做。或者什么是错误的。有任何想法吗?
(我可能在这里有一些轻微的语法错误,因为我没有复制粘贴我的代码,但我做了而不是在我的原始代码中有任何与语法相关的错误)。
尝试设置'contentType'参数为** false ** – Wizard
@向导已经尝试过了。不用找了。 – vonhact