当用于ajax调用webservice的数据类型为json "时,如何将成功函数的结果与字符串进行比较

How to compare result of the sucess function with a string when the dataType used to make ajax call to webservice is "jsonp"

本文关键字:函数 成功 结果 比较 字符串 webservice 调用 ajax 用于 数据类型 quot      更新时间:2023-09-26

我正在使用JQuery调用RESTful web服务

我想将成功函数返回的响应与使用if-else结构的字符串进行比较

注意:来自rest式web服务的响应是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=result;
            if (result.toString() == "Welcome User")
            {
                //link to direct to homepage
            }
                            else alert("Invalid details");
            },
            error: function (xhr, ajaxOptions, thrownError) {
            }
        });

请看看if-else部分,并建议我如何比较字符串的响应?

如果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");
}

作为旁注,在javascript中总是使用triple ===,因为它更安全!