Javascript 无法执行ajax post操作

Javascript 无法执行ajax post操作,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我有以下json数据: [ { "Password": "tedd", "Username": "john", "status": true } ] 我想使用post方法使用它 <label for="Username">Username:</label> <input type="text" id="txtUserName" placeholder="Enter UserName"/> <label for="Pass

我有以下json数据:

[
  {
    "Password": "tedd",
    "Username": "john",
    "status": true
  }
]
我想使用post方法使用它

<label for="Username">Username:</label>
<input type="text" id="txtUserName" placeholder="Enter UserName"/>
<label for="Password">Password</label>
<input type="text" id="txtPass" placeholder="Enter Password" />
<input type="button" onclick="loginc()" value="Click Me" />
因此,这里的问题是,每当我输入用户名和密码时,单击按钮,而不是验证我没有得到任何响应,它在错误中显示错误的凭据

这里,您发送的是文本字符串
username
password
,而不是变量。删除引号:

var datat = { Username: username, Password: password };

一种解决方案是将参数附加到
url

var datat = { Username: username, Password: password };

$.ajax({
   type: 'POST',
   url: urlink+'?username='+username+'&password='+password,
   dataType: "json",
   contentType: "application/x-www-form-urlencoded; charset=UTF-8",
   data:datat,
   success: function (resp) {                
      alert(resp);
      if (resp.length != 0) {
        alert("Logged On");
      } else {
        alert("Wrong Credentials");
      }

   },
   error: function (e) {
      alert("Invalid");
   }
});
另一种解决方案是使用
JSON.stringify()
方法发送对象

contentType
是要发送的数据类型,因此需要
application/json
默认为
application/x-www-form-urlencoded;字符集=UTF-8。

如果使用
application/json
,则必须使用
json.stringify()
才能发送
json
对象

JSON.stringify()
javascript
对象转换为JSON文本并存储在字符串中

$.ajax({
   type: 'POST',
   url: urlink,
   dataType: "json",
   contentType: "application/json",
   data:JSON.stringify(datat),
   success: function (resp) {                
      alert(resp);
      if (resp.length != 0) {
        alert("Logged On");
      } else {
        alert("Wrong Credentials");
      }

   },
   error: function (e) {
      alert("Invalid");
   }
});

如果您收到
“错误凭据”
您收到的是响应,它只是空的,这意味着错误很可能是服务器端的?@Madpop将
警报(“无效”)
替换为
警报(例如responseText)
,并检查准确的错误,然后你就会知道你哪里做错了。@Krish实际上按照你说的替换了它,而我没有得到任何结果responsetext@adeneo事实上,我和邮递员检查了url,我成功地获得了数据*Facedesk*。我想我们最好以“输入错误”的形式结束这篇文章。不,同样没有得到任何回应,请检查我的文章中的图片不,结果与图片不一样。我认为错误来自服务器端,因为你收到了空的回应。@Alexandru Ionut Mihai请检查文章的图片man@Madpop,看看我的答案。工人们现在得到了结果。
var datat = { Username: username, Password: password };

$.ajax({
   type: 'POST',
   url: urlink+'?username='+username+'&password='+password,
   dataType: "json",
   contentType: "application/x-www-form-urlencoded; charset=UTF-8",
   data:datat,
   success: function (resp) {                
      alert(resp);
      if (resp.length != 0) {
        alert("Logged On");
      } else {
        alert("Wrong Credentials");
      }

   },
   error: function (e) {
      alert("Invalid");
   }
});
$.ajax({
   type: 'POST',
   url: urlink,
   dataType: "json",
   contentType: "application/json",
   data:JSON.stringify(datat),
   success: function (resp) {                
      alert(resp);
      if (resp.length != 0) {
        alert("Logged On");
      } else {
        alert("Wrong Credentials");
      }

   },
   error: function (e) {
      alert("Invalid");
   }
});