Как бы вы запускали определенный фрагмент Javascript только тогда, когда форма не обрабатывается? - PullRequest
0 голосов
/ 18 сентября 2011

У меня есть фрагмент Javascript, который я хочу запустить при загрузке формы.Форма обрабатывает себя.Когда форма загружается, Javascript работает отлично, но когда форма отправлена ​​и страница обрабатывает сама себя, Javascript нарушает ее.

Есть ли способ заставить Javascript работать только тогда, когда форма не обрабатывается?

ОБНОВЛЕНИЕ:

Я получаю эту ошибку, когдаформа обрабатывается (Javascript выполняет AJAX-запрос):

TypeError: 'undefined' не является объектом XMLHttpRequest не может загрузить [URL-адрес запроса ajax] Источник [исходная страница] не разрешен Access-Control-Allow-Origin

Вот HTML-код:

<form method="#" action="post">
    <!--form elements-->
</form>

Вот Javascript:

ajax.onreadystatechange=function() {
    if (ajax.readyState==4 && ajax.status==200) {
        document.getElementById("invitestar-message").innerHTML=ajax.responseText;
        var signup = document.getElementById("invitestar-content-container");
        setTimeout(function(){
            body.removeChild(document.getElementById('invitestar-verifying'));
            signup.style.display = "block";
        }, 500);
    }
}

ajax.open("GET","http://nvrforget.com/invitestar/check-invite/?invite=kNdqyJTjcf",true);
ajax.send();

Домен, на котором запущен этот JavaScriptне http://nvrforget.com/.

1 Ответ

2 голосов
/ 18 сентября 2011

Эта ошибка:

XMLHttpRequest cannot load [ajax request url] Origin [original page] is not allowed by Access-Control-Allow-Origin

вызвано тем, что вы не можете совершать ajax-вызовы на другой домен, на котором расположена веб-страница. См. Это описание политики того же происхождения .

JSONP - это способ осуществления вызовов ajax между источниками. Для этого требуется взаимодействующий сервер (для реализации серверной части JSONP) и метод добавления запроса ajax в качестве тега сценария. Такие библиотеки, как jQuery или YUI, поддерживают клиентские части JSONP, или вы можете сделать это самостоятельно (но вам все равно нужен взаимодействующий сервер). Google JSONP, если вы хотите узнать больше об этом.

...