ajax调用中的404错误,wordpress

时间:2014-01-06 11:30:24

标签: javascript php jquery ajax wordpress

我正在使用ajax从查询表单中收集数据,然后将数据发送到另一个页面,此页面应该将此数据发送到我的电子邮箱。
问题是当我点击发送按钮时,我在firebug控制台中收到404错误 在模板中(带有ajax代码)我使用这个调用:

$.ajax({
        type: "POST",
        url: "<?php echo get_permalink(11); ?>",
        data: {
                name: $('.enquiryName').val(),
                email: $('.enquiryEmail').val(),
                comments: $('.enquiryComments').val()
        }
}).done(function(msg) {
    if (msg=='1') {
        alert('<strong>Your enquiry has been sent successfully.</strong>');
        $('.enquiryName').val('');
        $('.enquiryEmail').val('');
        $('.enquiryComments').val('');
    } else {
        $('.errorBox').html(msg);
    }
});

目标页面只是在wordpress中创建的另一个页面,具有非常基本的模板。当我把这个页面地址添加到浏览器URL栏并按回车时,我收到消息无法发送。,这是正确的。

可能有什么问题?在ajax中我得到404错误,在浏览器中没问题。

3 个答案:

答案 0 :(得分:0)

您需要在Ajax调用中使用相对URL ...将<?php echo get_permalink(11); ?>替换为实际的相对URL并查看它是否有效..

答案 1 :(得分:0)

Replace 
 url: "<?php echo get_permalink(11); ?>",
with
url: '<?php echo admin_url('admin-ajax.php'); ?>'

您还必须在数据中传递'action'参数,然后将其附加到回调函数

必须看到这一点:

http://codex.wordpress.org/AJAX_in_Plugins

答案 2 :(得分:0)

您需要在前端获取Ajax URL的实例。 为此,您需要将脚本排入队列并使用WP函数wp_localize_script

所以在functions.php

function enqueue_AjaxURL() {

    wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/jmy-Yourscript.js', array('jquery') );

    wp_localize_script( 'ajax-script', 'ajax_object',
            array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'enqueue_AjaxURL' );

在您的JS文件中,您可以使用该对象: url: ajax_object.ajax_url,