wordpress - 访问 Ajax Enqeued 文件以传递给 URL 以进行 Ajax 调用的问题
问题描述
我正在尝试访问 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
错误
addproducts.js?ver=4.9.6:6 Uncaught ReferenceError: ajaxurl 未在 HTMLAnchorElement 中定义。(addproducts.js?ver=4.9.6:6) 在 HTMLAnchorElement.dispatch (jquery.min.js?ver=4.9.6:3) 在 HTMLAnchorElement.r.handle (jquery.min.js?ver=4.9.6 :3)
你能告诉我我错过了什么吗?
解决方案
在您的functions.php中添加此代码
var request = $.ajax({
type: "POST",
url: ajax_custom.ajaxurl,
您需要调用 ajax_custom 因为它是您的 ajax url 的对象
还有另一种选择是可能的
add_action('wp_head', 'myplugin_ajaxurl');
function myplugin_ajaxurl() {
echo '<script type="text/javascript">
var ajaxurl = "' . admin_url('admin-ajax.php') . '";
</script>';
}
add_action('init','myplugin_ajaxurl');
推荐阅读
- c# - C# 中的动态字符串模板
- mongodb - 在从另一个集合中获取所有详细信息之后,列出项目的最佳方法是什么?
- jwt - Kong 通过 jwt 全局插件进行匿名路由
- php - 如何在while循环中处理多个提交按钮,每个项目都有唯一的ID但是
- encoding - x-www-form-urlencoded 中是否保留了空格?
- docker - Docker - docker-compose build 没有匹配的清单,但 docker build 在使用非默认 docker 上下文时有效
- vue.js - Vuex 的 AJAX 包装器
- node.js - 无法读取未定义 multer 的路径
- google-cloud-platform - Cloud Tasks + Cloud Functions - 重复执行
- javascript - 在另一个 div 中更改后从 div 中删除类(Wordpress 联系表 7)