Jump to content
Sign in to follow this  
Lovly

Проблема с ответом сервера по аякс

Recommended Posts

Вообщем пишу свой движок, решил знания подкрепить.

Дошло дело до Ajax регистрации, и вылезла проблема.

Когда нажимаю кнопку зарегистрироваться в консоль выводит варнинг:

welcome.js:44 [Deprecation] Resource requests whose URLs contained both removed whitespace (`\n`, `\r`, `\t`) characters and less-than characters (`<`) are blocked. Please remove newlines and encode less-than characters from places like element attribute values in order to load these resources. See https://www.chromestatus.com/feature/5735596811091968 for more details.
(anonymous) @ welcome.js:44
c @ jquery.lib.js:2
fireWith @ jquery.lib.js:2
l @ jquery.lib.js:2
(anonymous) @ jquery.lib.js:2
load (async)
send @ jquery.lib.js:2
ajax @ jquery.lib.js:2
S.<computed> @ jquery.lib.js:2
(anonymous) @ welcome.js:36
dispatch @ jquery.lib.js:2
v.handle @ jquery.lib.js:2

 

Попробовал вывести ответ в консоль, через кансоль лог, он мне должен вывести айди юзера, но проблема в том что выводит в месте с айди весь код html страницы.

В движке я использовал шаблонизатор из кабула.

Если шаблонизатор отключить то всё работает нормально.

Попробовал шаблонизатор из Vii 2.0, с ним тоже всё выводит нормально.

Вот js код:

$(document).ready(function(){
	$('#reg_btn').on('click', function(){
		var name = $('#name').val();
		var surname = $('#surname').val();
		$.post('/?go=welcome', {
				name: name,
				surname: surname,
			}, function(d){
	
			var exp = d.split('|');
			if(exp[0] == 'ok'){
				console.log(exp[1]);
				window.location = '/u'+exp[1]+'after';
			}
		});
	});
});

window.location = '/u'+exp[1]+'after';

не сробатывает, выдаёт этот варнинг.

Я так понимаю из за того, что в ответе имеются символы и пробелы, которые хромимум не пропускает в url запросах.

обработчик тестовый*

if(!$user_logged){



  $user_name = $_POST['name'];
  $user_surname = $_POST['surname'];

  // Добавляем пользователя в базу
  $db->query("INSERT INTO `" . PREFIX . "_user` (name, surname) VALUES ('{$user_name}', '{$user_surname}')");
  $id = $db->insert_id();

  $_SESSION['user_id'] = intval($id);

  echo 'ok|'.$id;





}

 

В чем трабл? мучаюсь, в гугле не чего дельного не нашёл, помогите плиз))

Может как то можно убрать html код из ajax ответа и оставить только OK и Id юзера?

 

image.thumb.png.51406f9defc58515ca613784c14fea1a.png

Edited by Lovly

Share this post


Link to post

Спустя 100милиардов лет разобрался, заменил echo на exit и всё заработоло как по маслу.

Share this post


Link to post
1 час назад, Lovly сказал:

Спустя 100милиардов лет разобрался, заменил echo на exit и всё заработоло как по маслу.

:emoji_1f602:Зато пофиксил)

  • Upvote 2

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×