Сообщение ajax не может перенаправить к действию

Javascript:

$("#containerr").on('click', '#select', function() {
data = {};
val = {
"name": 'John',
"id": 10,
}
data.user = JSON.stringify(val);
data.token = $("input[name=token]").val();
console.log(data);
url = '/test/ajax/';
$.ajax({
url: url,
type: "POST",
data: data,
success: function(data) {
alert('success');
},
error: function(xhr, ajaxOptions, error) {
alert(xhr.status);
alert(error);
},
});
return true;
});

PHP:

public function ajax()
{
$input = $this->input->post();
print_r($input['user']);
}

HTML:

<div id="container">
<input type="hidden" name="token" value="8sdf243dfa426b2sfwe434fdg43gwsf" />
<button type="submit" id="select">Select</select>
</div>

Описание:

Когда я нажимаю кнопку выбора, я вижу результат действия публикации. print_r($input) в функции php также возвращает желаемый результат. Однако, поскольку я не использую форму для выполнения этой отправки, браузер не перенаправляет на действие публикации (/test/ajax/ в этом случае). Я вижу, что перенаправление происходит на консоли Firebug, но браузер фактически не перенаправляет на эту ссылку. Когда я пытаюсь window.location = 'http://www.mybaseurl.com/'+urlя больше не могу получить доступ к данным, я теряю data, Как я могу перенаправить браузер на действие публикации url и до сих пор сохраняют data?

Отредактированный JavaScript:

$("#container").on('click', '#select', function() {
data = {};
val = {
"name": 'John',
"id": 10,
}
data.user = JSON.stringify(val);
data.token = $("input[name=token]").val();
console.log(data);
url = '/test/ajax/';
$.post(url, data, function(data) {
alert('success');
});
return true;
});

0

Решение

Весь смысл AJAX в том, что он не перенаправляет на указанный вами URL-адрес, а просто отправляет на него данные. Если вы хотите, чтобы пользователь переходил по URL-адресу после завершения вызова AJAX, возможно, вы не захотите использовать AJAX. Просто используйте обычную форму.

<form method="POST" action="/test/ajax">
<input type="hidden" name="token" value="8sdf243dfa426b2sfwe434fdg43gwsf" />
<button type="submit" id="select">Select</select>
</form>

редактировать:

С данными, которые вы отправляете, форма будет выглядеть

<form method="POST" action="/test/ajax">
<input type="text" name="name" />
<input type="text" name="id" />
<input type="hidden" name="token" value="8sdf243dfa426b2sfwe434fdg43gwsf" />
<button type="submit" id="select">Select</select>
</form>
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]