2014-01-06 4 views
0

Я использую ajax для сбора данных из формы запроса, затем данные отправляются на другую страницу, и эта страница должна отправить эти данные на мой адрес электронной почты.
Проблема заключается в том, когда я нажимаю кнопку отправки, я получаю ошибку 404 в консоли firebug.
В шаблоне (с AJAX кода) Я использую этот вызов:404 ошибка в вызове ajax, wordpress

$.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 bar этот адрес страницы и нажимаю enter, я получаю сообщение Нечего посылать., что является правильным.

Что может быть неправильным? В ajax я получаю ошибку 404, в браузере это нормально.

+0

Так Ссылка не точный. Это относительный URL или абсолютный? Извините, я не являюсь пользователем Wordpress, поэтому я понятия не имею, что должен возвращать метод: 'get_permalink (11);' –

+0

просто «просмотрите исходный код» на странице и найдите свой вызов ajax - вы, вероятно, найдете URL-адрес, который вы повторяете, не соответствует ожиданиям. –

+1

при использовании 'get_permalink', wordpress return absolute url. URL правильный. Я уже писал, что если я поместил этот url в url-браузер, я могу видеть правильный контент, я не получаю ошибку 404. – miszczu

ответ

0

Вы должны использовать относительный URL в вызове Ajax ... заменить <?php echo get_permalink(11); ?> с фактической относительной URL и посмотреть, если он работает ..

+0

Это поведение Wordpress или что? –

+0

Вы не можете использовать абсолютный URL-адрес в вызове Ajax. Это не имеет никакого отношения к Wordpress. Это необходимо для предотвращения сценариев на разных сайтах. – superphonic

+0

Хм, это ново для меня. Я использовал много раз абсолютные URL-адреса с ajax-вызовом, точно так же, как jsonp-теги –

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

также вы должны пройти «действия» параметров в ваших данных, которые затем могут быть прикреплены к обратному вызову функция

должен увидеть это:

http://codex.wordpress.org/AJAX_in_Plugins

+0

i dont wont отправить эти данные admin-ajax.php, потому что он не отправит эти данные – miszczu

+0

, почему он не отправит эти данные? – codepixlabs

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,

Смежные вопросы