Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Webflow и AJAX (https://javascript.ru/forum/misc/75435-webflow-i-ajax.html)

kofmaler 08.10.2018 17:01

Webflow и AJAX
 
Здравствуйте. У меня сайт выдаёт странную ошибку. Суть проблемы в том, что есть сайт, свёрстанный в программе webflow. Там есть форма, которая при удачной отправке выводит сообщение с помощью css+js, что всё мол успешно, в случае отправки формы. А если данные не отправлены на сервер, то ошибка.

Я делаю отправку формы в помощью jquery AJAX и несмотря на то, что запрос успешно отправляется, в вёрстке всё равно выводится, что сообщение не отправлено.

Уважаемые профессионалы, в чём может быть проблема и как её решить? Хотелось бы, чтобы отчёт об отправки сообщения выводился красиво, а не просто через alert("Сообщение доставлено");

Есть ещё одна проблема. Если я делаю AJAX запрос через метод GET, то всё отправляется успешно. А если через POST, то выводит следующую ошибку

"Failed to load resource: the server responded with a status of 405 (Method Not Allowed)"

В чём может быть проблема? Можно конечно и через GET отправлять, но хотелось бы и в этом разобраться.

Сам сайт вот:

http://itcity48.ru/#email-form

vaddy 09.10.2018 13:24

вот рабочий скрипт
<script type="text/javascript">
		makeWebflowFormAjax = function( form, successCallback, errorCallback ) {
			form.each(function(){
				var form = $(this);
				form.on("submit", function(){
					var container = 	form.parent();
					var doneBlock  =	$(".w-form-done", container);
					var failBlock  =	$(".w-form-fail", container);
				
					var action = 		form.attr("action");
					var method = 		form.attr("method");
					var data = 			form.serialize();
					
					// call via ajax
					$.ajax({
						type: method,
						url: "send.php",
						data: data,
						success: function (resultData) {
							if (typeof successCallback === 'function') {
								// call custom callback
								result = successCallback(resultData);
								if ( ! result ) {
									// show error (fail) block
									form.hide();
									doneBlock.show();
									failBlock.hide();
									console.log(e);
									
									return;
								}
							}
							
							// show success (done) block
							form.hide();
							doneBlock.show();
							failBlock.hide();
						},
		
						error: function (e) {
							// call custom callback
							if (typeof errorCallback === 'function') {
								errorCallback(e)
							}
							
							// show error (fail) block
							form.hide();
							doneBlock.show();
							failBlock.hide();
							console.log(e);
						}
					});
					
					// prevent default webdlow action
					return false;
				});
			});
		}
		</script>
		
		<script type="text/javascript">
		 makeWebflowFormAjax( $("form") );
		</script>


Часовой пояс GMT +3, время: 02:03.