#javascript #jquery #ajax #web-services #jsonp
#javascript #jquery #ajax #веб-сервисы #jsonp
Вопрос:
Я вызываю веб-сервис RESTful с помощью jQuery
Я хочу сравнить ответ, возвращаемый функцией success, со строкой, используя структуру if-else
Примечание: ответ от веб-сервиса RESTful — JSONObject : — «Добро пожаловать, пользователь»
Вот мой код:
$("#loginform").submit(function(event){
event.preventDefault();
var user = document.getElementById("username").value;
var pass = document.getElementById("password").value;
$.ajax({
url: "http://ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com:8080/UserManagement/rest/user_details/sign_in",
type: "POST",
crossDomain: true,
dataType: 'jsonp',
data: { username: user, password: pass},
success: function (result) {
resultDiv.innerHTML=resu<
if (result.toString() == "Welcome User")
{
//link to direct to homepage
}
else alert("Invalid details");
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
Пожалуйста, посмотрите на часть if-else и предложите мне, как сравнить ответ со строкой?
Ответ №1:
Если результатом вашего ajax-вызова является объект JSON, то вы не сможете таким образом проверить глубокое равенство. Вам нужно будет найти ключевой индекс строкового значения «Добро пожаловать, пользователь».
Если вы не уверены в поступающих данных, вы всегда можете перебрать объект JSON и проверить наличие «Добро пожаловать, пользователь», например, в вашем успешном обратном вызове :
var containedString = false;
for (var key in results) {
if (results[key] === "Welcome User") {
containedString = true;
}
}
if (containedString = true) {
// link to homepage
} else {
alert("Invalid Details");
}
В качестве примечания, всегда используйте triple === в javascript, так как это безопаснее!
Комментарии:
1. Я попытался добавить это, но по-прежнему блок if-else не выполняет свой код в блоке ‘if’: console.log («Привет, пользователь»);