我试图访问WP主题目录中的自定义php文件,以传递给jQuery Ajax调用。我在中添加了以下代码function.php
注册脚本和PHP文件
function add_ajax() {
wp_enqueue_script( \'addproducts\', get_template_directory_uri() .\'/js/addproducts.js\', array(\'jquery\'),\'\',true );
wp_localize_script(\'addproducts\', \'ajax_custom\', array(\'ajaxurl\' => admin_url(\'session.php\')));
}
add_action( \'wp_enqueue_scripts\', \'add_ajax\' );
现在在我的JavaScript文件中,我试图传递url
url: ajaxurl
var request = $.ajax({
type: "POST",
url: ajaxurl,
但我得到了
ajaxurl is not defined
错误
添加产品。js?ver=4.9.6:6未捕获引用错误:HtmlanchoreElement中未定义ajaxurl。(addproducts.js?ver=4.9.6:6)位于HTMLanchoreElement。在HTMLanchoreElement调度(jquery.min.js?ver=4.9.6:3)。r、 句柄(jquery.min.js?ver=4.9.6:3)
你能告诉我我错过了什么吗?
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
而且它没有机会正常工作。
当您使用wp_localize_script
就像这样:
wp_localize_script( $handle, $name, $data );
然后对象调用
name
定义和
data
就是它的内容。正如你在
this example from Codex.
所以你不能使用ajaxurl
在JS文件中,因为代码中没有定义这样的变量。
正确的方法是:
var request = $.ajax({
type: "POST",
url: ajax_custom.ajaxurl,