访问AJAX排队文件以传递到URL以进行AJAX调用的问题

时间:2018-06-15 作者:Behseini

我试图访问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文件中,我试图传递urlurl: 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)

你能告诉我我错过了什么吗?

1 个回复
最合适的回答,由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,

结束