jQuery post не возвращает данных ответа
у меня есть этот код
$(document).delegate('#login', 'pageinit', function(event) {
console.log('inside login page')
$('#loginform').submit(function() {
// Get the value of the username and password
var myusername = $("#username").val();
var mypassword = $("#password").val();
// Post to the login route
$.post(global_urlstub + '/customer_login', {username: myusername, password: mypassword}, function(data) {
alert(data);
console.log(data);
if (data.flag == true) {
alert('123');
console.log(data);
jQuery.mobile.changePage('#page1');
}
else {
alert('12345');
console.log(data);
$('#errmsg_login').html(data.msg);
}
}, "json" );
return false;
});
});
мой сервер возвращает хэш с ключом flag
. Однако этот код не возвращает мне данных для консоли или предупреждения , в то время как post-запрос успешен. Что я делаю не так?
3 ответов
Я бы согласился с Hemant_Negi, что это проблема с вами сервер не возвращает допустимый JSON. Следующий код, основанный на вашем, отлично работает (изменение URL-адреса там тоже, которое возвращает действительный JSON):
var myusername = 'a', mypassword = 'b';
$.post('http://ip.jsontest.com', {username: myusername, password: mypassword}, function(data) {
alert(data.ip);
console.log(data);
if (data.flag == true) {
alert('123');
console.log(data);
jQuery.mobile.changePage('#page1');
}
else {
alert('12345');
console.log(data);
$('#errmsg_login').html(data.msg);
}
}, "json" ).fail( function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
Если вы измените этот URL, вызов fail () должен предупредить сообщение об ошибке.
это происходит, когда сервер не возвращает допустимый JSON
сначала попробуйте без типа данных, как показано ниже..
$.post(global_urlstub + '/customer_login', {username: myusername, password: mypassword}, function(data) {
alert(data);
console.log(data);
if (data.flag == true) {
alert('123');
console.log(data);
jQuery.mobile.changePage('#page1');
}
else {
alert('12345');
console.log(data);
$('#errmsg_login').html(data.msg);
}
});
убедитесь, что вы берете любой выходной код отладки в сценарии на стороне сервера.
кроме того, с помощью Firebug или chrome tools, вы можете легко проверить ответ от сервера, чтобы увидеть, если он находится в допустимом формате JSON.