Отправка формы Ajax - PullRequest
0 голосов
/ 22 июля 2011

Хорошо, я нахожусь над своей головой, поскольку AJAX - определенно слабая область. У меня есть страница, которая должна отправить форму регистрации через ajax в другой домен, чтобы обработать ее, а затем вернуться с сообщением об успехе / неудаче.

При использовании следующего кода страница просто обновляется и ничего не отправляется?

Код формы:

<form method="post" onSubmit="return submitGetApp();" class="kinkast_signup"> 
  <input id="login_email" type="text" name="to" />
  <input id="signInButtonSubmit" type="submit" name="action" value="Send" />
</form>

Код jQuery: $ ('# signInButtonSubmit'). click (function (e) {

    //Get the data from all the fields
    var number = $('input[name=to]');

    //Simple validation to make sure user entered something
    //If error found, add hightlight class to the text field
    if (number.val()=='') {
        name.addClass('hightlight');
        return false;
    } else name.removeClass('hightlight');

    //organize the data properly
    var data = 'number=' + number.val();

    //show the loading sign
    $('p.ajax_message').hide();

    //start the ajax
    $.ajax({
        //this is the php file that processes the data and send mail
        url: "http://video.kinkast.com/getapp", 

        //GET method is used
        type: "POST",

        //pass the data         
        data: data,     

        //Do not cache the page
        cache: false,

        //success
        success: function () {              
            $('p.ajax_message').html('Success!');
            alert('Worked!');                    

            },

        //Failure
        error: function(xhr, status, e) {
            alert(status, e);
        } 

    });

    //cancel the submit button default behaviours
    return false;
}); 

Может кто-нибудь проверить код и посмотреть, что мне не хватает? Кроме того, чтобы увидеть его в прямом эфире, посетите эту ссылку

Ответы [ 2 ]

0 голосов
/ 22 июля 2011

Существуют способы сделать междоменные запросы json через jquery с помощью плагина. Он использует YQL для возврата дампа страницы в виде запроса json. Его не очень рекомендуется, но если вам действительно нужно, вы можете. Вот ссылка на него, здесь есть ссылка на его github для самой последней версии. Я недавно использовал его для некоторого тестирования, и все это работало очень хорошо, я скоро включу JSFiddle.

http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/

Существует также страница с публикацией сообщений через YQL: http://www.wait -till-i.com / 2009/11/16 / с использованием-YQL для чтения-HTML-из-а-документа, что-требует-пост-данных /

Пример JSFiddle: http://jsfiddle.net/M6X6n/1/

0 голосов
/ 22 июля 2011

Вы не можете отправлять сообщения ajax в другой домен.

Это поможет предотвратить такие вещи, как атаки межсайтового скриптинга (атака XSS).

Доступны фреймворки, которые позволяют вам делать такие вещи, как ACD , однако в большинстве случаев я бы не рекомендовал эту практику.

UPDATE

Вот рабочая версия вашего кода: http://jsfiddle.net/4tMN3/

Вы заметите пару новых вещей.

Во-первых, я присоединяю событие, используя механизм событий jQuery с поддержкой propper.

$('#mySubmitForm').submit(function(event){})

Это гораздо предпочтительнее, чем жесткое кодирование события в реальной форме.

Во-вторых, вы заметите использование:

event.preventDefault();

Это продвинутый способ jQuery для предотвращения поведения формы по умолчанию (т.е. отправки) вместо возврата false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...