0

我正在使用 Webpack 和 Wordpress。

当我在这样的函数中加入示例 ajax 脚本时:

    wp_enqueue_script( 'script-name', get_stylesheet_directory_uri() . '/js/example_script.js', array(), false, true );

    wp_enqueue_script( 'general-bundle', get_template_directory_uri() . '/dist/bundle.app.js', array(), false, true );
    wp_localize_script('script-name', 'fih_ajax', array( 'url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce(‘example-nonce')));

有用。

问题是当我从functions.php中删除example_script.js并将其导入app.js(因为我想将它包含到bundle.app.js中):

import "./example_script.js";

控制台显示:

ReferenceError: Can't find variable: fih_ajax

example_script.js 部分:


        $.ajax({
            url: fih_ajax.url,
            type: 'POST',
            data: {
                action: 'fimgh_ajax',
                nonce: fih_ajax.nonce,
                href: hrefValue //the-data
            },
            

在 bundle.app.js 中:

https://jsfiddle.net/4052vaun/1/

4

1 回答 1

0

wp_localize_script句柄需要指向一个正在使用的句柄,在本例中为“general-bundle”。

改变

wp_localize_script('script-name', 'fih_ajax', array( 'url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce(‘example-nonce')));

进入

wp_localize_script('general-bundle', 'fih_ajax', array( 'url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce(‘example-nonce')));

解决了这个问题。感谢@HowardE 评论

于 2022-02-10T11:54:44.643 回答