#json #ajax
#json #ajax
Вопрос:
У меня есть скрипт запроса ajax с методом post, использующим значение тела, чего я хочу, так это напечатать значение ответа.
$('#my-form').submit(function () {
$.ajax({
url: 'https://apiurl.com/users',
type: 'post',
headers: {
'accept': 'application/json;charset=UTF8',
'content-type': 'application/json',
'api-key': 'judmkd895849438'
},
contentType: 'application/json',
data: { "firstname": $('#firstname').val(), "lastname": $('#lastname').val() },
success: function( data, textStatus, jQxhr ){
$('#response pre').html( JSON.stringify( data ) );
},
error: function( jqXhr, textStatus, errorThrown ){
console.log( errorThrown );
}
});
});
и сценарий формы является:
<form id='my-form'>
<div><input type='text' name='firstname' id='firstname' placeholder='Firstname' /></div>
<div><input type='text' name='lastname' id='lastname' placeholder='Lastname' /></div>
<div><input type='submit' value='Submit' /></div>
</form>
<!-- where the response will be displayed -->
<div id="response">
<pre></pre>
</div>
но на экране ничего не отображается, кто-нибудь знает почему?
Спасибо
Комментарии:
1.
<pre>
Внутри вашего#response
div нет, поэтому$('#response pre')
обновлять нечего.2. Я добавил, но по-прежнему ничего не появляется
3. Что произойдет, если
console.log(data);
внутриsuccess
обратного вызова? Что-нибудь регистрируется в консоли?4. Привет @phuzi, пробовал, но на консоли тоже ничего не отображается. Но если бы я удалил $ (‘#my-form’).submit(функция () { в журнале консоли отображаются нулевые данные
5. Вы уверены, что вызов AJAX выполняется успешно? Если да, уверены ли вы, что существует ответ в формате JSON?
Ответ №1:
Как сказал Рой, вам нужно запретить браузеру отправлять форму. Вам нужно будет предотвратить запуск события по умолчанию при обработке его с помощью AJAX-запроса.
$('#my-form').submit(function (event) {
event.preventDefault();
$.ajax({
url: 'https://apiurl.com/users',
...