parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Не наблюдаю никаких проблем

G_Z 24.07.2020 02:25 / 24.07.2020 06:25

@main[]
^if(^request:headers.AJAX.bool(false)){
	^ajax[]
}{
	^form[]
}


@form[]
$text[Ich wei&#223^; nicht, was soll es bedeuten
Da&#946^; ich so traurig bin^;
Ein M&#228^;rchen aus alten Zeiten,
Das kommt mir nicht aus dem Sinn.]


<form id="form" method="post" action="">
	<textarea id="text" name="text" rows="4" cols="40">$text</textarea>
</form>


<h1>HTML native form</h1>
<button form="form" type="submit">Send via HTML</button>

^if($request:method eq 'POST'){
	<p>^form:text.replace[^taint[^#0A];<br/>]</p>
}


<h1>JS submit (form-urlencoded)</h1>
<button id="js-button-urlencoded" type="button">Send via JS</button>

<p id="response-urlencoded"></p>

<script>
	(function(){
		var button = document.querySelector('#js-button-urlencoded');

		button.addEventListener('click', function(){
			var form   = document.querySelector('#form'),
				text   = document.querySelector('#text').value,
				result = document.querySelector('#response-urlencoded');

			var data = 'text=' + encodeURIComponent(text);

			fetch(window.location.href, {
				method: 'POST',
				headers: {
					'ajax':         true,
					'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
				},
				body: data
			}).then(function(response){
				return response.text();
			}).then(function(text){
				result.innerText = text;
			});
		});
	})();
</script>


<h1>JS submit (multipart/form-data)</h1>
<button id="js-button-multipart" type="button">Send via JS</button>

<p id="response-multipart"></p>

<script>
	(function(){
		var button = document.querySelector('#js-button-multipart');

		button.addEventListener('click', function(){
			var form   = document.querySelector('#form'),
				result = document.querySelector('#response-multipart');

			fetch(window.location.href, {
				method: 'POST',
				headers: {
					'ajax': true
				},
				body: new FormData(form)
			}).then(function(response){
				return response.text();
			}).then(function(text){
				result.innerText = text;
			});
		});
	})();
</script>


@ajax[]
$form:text
Всё прекрасно отправляется обоими методами, никакого специального декодирования не требуется.

Проверяйте свои методы отправки.