[jQuery]Uncaught SyntaxError: Unexpected token {

[jQuery]Uncaught SyntaxError: Unexpected token {

我在这里搜索了所有类似的主题,但找不到可以解决我的特定问题的信息。我得到一个

Uncaught SyntaxError: unexpected token {.

通过一次删除一段代码,我发现以下函数导致了问题:

add_action( 'wp_footer', 'render_edu_hook_javascript' );

function render_edu_hook_javascript() { ?>
    <script type="text/javascript">
    var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";

    $("#edu_institute").focusOut(function () {
        var data = {
            'action': 'render_edu_hook',
            'institute': $('#edu_institute').val()
        };

        jQuery.post(ajaxurl, data, response){
            console.log(response);
            $( "#edu_programme" ).autocomplete({
                response
            });
        };
    });
    </script> <?php
};
jQuery.post(ajaxurl, data, response){

这是错误的。我不知道它应该是什么,但这是错误的。解决这个问题。

您的 jQuery.post 调用似乎不正确:

jQuery.post(ajaxurl, data, response){
    console.log(response);
    $( "#edu_programme" ).autocomplete({
        response
    });
};

不应该是

jQuery.post(ajaxurl, data, function (response) {
    console.log(response);
    $( "#edu_programme" ).autocomplete({
        response
    });
});

有关详细信息,请参阅 jQuery.post 的文档。

顺便说一句,您也可以使用较新的 API:

jQuery.post(ajaxurl, data).done(function (response) {
    console.log(response);
    $( "#edu_programme" ).autocomplete({
        response
    });
});

尝试将 jquery post 更改为这种形式,我猜 response 是成功回调的返回值,那么您应该将其包装在函数块中:

jQuery.post(ajaxurl, data, function(response){
   console.log(response);
   $( "#edu_programme" ).autocomplete({
       response
    });
});