使用jQuery FancyBox从前端发出AJAX请求

时间:2013-04-26 作者:egdavid

我希望能够使用jQuery Fancybox的Ajax特性从前端请求数据。下面是我在插件部分使用的代码的一部分:

wp_localize_script( \'wpPluginjs\', \'ajax_vars\', array(
           \'url\' => admin_url( \'admin-ajax.php\' ),
           \'nonce\' => wp_create_nonce( \'ajax-nonce\' )
        )
);
在js方面:

var url = ajax_vars.url;
var nonce = ajax_vars.nonce;

$( "#list" ).fancybox({
    maxWidth    : 800,
    maxHeight   : 600,
    openEffect  : \'none\',
    closeEffect : \'none\',
    title       : false,
    type: \'ajax\',
    href: ajax_vars.url+\'&nonce=\'+ajax_vars.nonce
});
但是,当我单击“#list”时,实际上一直出现以下错误:

"NetworkError: 404 Not Found - http://mywebsite.com/wp-admin/admin-ajax.php&nonce=7bbd764db8"
我尝试了一个基本的jQuery Ajax请求,效果非常好。Fancybox似乎有问题,仍然无法找到正确的”admin-ajax.php“”url。

我还试图添加wp_localize_script()wp_enqueue_script() 加载jQuery Fancybox的函数。

任何帮助都将不胜感激。

2 个回复
最合适的回答,由SO网友:Milo 整理而成

&nonce 应该是?nonce. 这个? 开始查询字符串& 分隔查询字符串中的参数。

SO网友:egdavid

我不知道这是否是最佳做法,但如果我使用以下href,它会起作用:

href: \'../wp-admin/admin-ajax.php?nonce=\'+ajax_var.nonce

结束