Javascript 404 ajax调用中的错误,wordpress

Javascript 404 ajax调用中的错误,wordpress,javascript,php,jquery,ajax,wordpress,Javascript,Php,Jquery,Ajax,Wordpress,我正在使用ajax从查询表单收集数据,然后将数据发送到另一个页面,该页面应该将这些数据发送到我的电子邮件。 问题是,当我单击“发送”按钮时,firebug控制台中出现404错误。 在模板中(使用ajax代码),我使用以下调用: $.ajax({ type: "POST", url: "<?php echo get_permalink(11); ?>", data: { name: $('.enquiryN

我正在使用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);
    }
});
$.ajax({
类型:“POST”,
url:“”,
数据:{
名称:$('.inquiryName').val(),
电子邮件:$('.inquiryEmail').val(),
备注:$('.inquirycomments').val()
}
}).done(函数(msg){
如果(msg='1'){
警报(“您的查询已成功发送。”);
$('.inquiryName').val('');
$('.inquiryemail').val('');
$('.inquirycomments').val('');
}否则{
$('.errorBox').html(msg);
}
});
目标页面只是wordpress中创建的另一个页面,具有非常基本的模板。当我把这个页面地址放在浏览器的url栏上并按enter键时,我得到的信息没有要发送的内容。,这是正确的


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

您需要在ajax调用中使用相对URL。。。用实际的相对URL替换
,看看它是否有效。

替换
Replace 
 url: "<?php echo get_permalink(11); ?>",
with
url: '<?php echo admin_url('admin-ajax.php'); ?>'
url:“”, 具有 url:“”
您还必须在数据中传递一个'action'参数,然后将其附加到回调函数

必须看到这一点:


您需要在前端获得一个Ajax URL实例。 为此,您需要将脚本排队并使用
WP
函数
WP\u localize\u脚本

因此在
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\u object.ajax\u url,

所以url不准确。它是相对URL还是绝对URL?对不起,我不是wordpress用户,所以我不知道应该返回什么方法:
get\u permalink(11)只需在页面上执行“查看源代码”并找到您的ajax调用-您可能会发现您正在回显的URL与预期不符。使用
get\u permalink
时,wordpress返回绝对URL。Url是正确的。我已经写过,如果我把这个url放到浏览器的url栏上,我可以看到正确的内容,我不会得到404错误。你需要在Ajax调用中使用相对url…@superphonic为什么?更好的方法是使用绝对URL这是wordpress行为还是什么?在Ajax调用中不能使用绝对URL。这与Wordpress无关。这是为了防止跨站点脚本编写..嗯,这对我来说是新的。我在ajax调用中使用过很多次绝对URL,就像jsonp ONE一样。你确定你没有混淆绝对URL和相对URL吗:不管怎样,ajax可以对任何类型的请求使用任何类型的URL,尤其是周一早上……;)我不想将此数据发送到admin-ajax.php,因为它不会发送此数据。为什么它不会发送此数据?