【发布时间】:2016-03-06 19:50:49
【问题描述】:
我正在使用以下代码向 REST Web 服务发送发布请求:
<script type="application/javascript">
$(document).ready(function() {
$("#logbutton").click(function(event){
$.post(
"http://localhost:8080/CredentialsOnDemand/loginexpert/dologin",
{
ephone: $("#mobile").val(),
epassword: $("#password").val()
},
function(data) {
data = $.parseJSON( data );
$(".ray").html("$" + data.tag);
console.log( "You clicked a paragraph!" );
}
);
});
});
Web 服务提供以下格式的 JSON 响应:
{"tag":"login","status":true}
来自 jquery 代码的调用正在运行,即 Web 服务运行良好,但我创建的用于解析 JSON 的函数不起作用。
注意: 我尝试在文本字段中不提供任何值的情况下运行此代码。控制台显示了 json 响应以及 console.log 行。但是当我再次在字段中输入值时,它没有。我无法理解这件事。
有人知道吗? 提前致谢。
【问题讨论】:
-
函数只是没有运行,还是抛出错误? $.post 将尝试猜测响应类型,因此数据可能已经是 JSON 对象,而 $.parseJSON 可能会搞砸。数据打印什么就像你 console.log 一样(在 $.parseJSON 调用之前)?
-
所以文档显示了如何启用错误处理程序......它告诉你什么?
$("#logbutton")是什么?可能需要阻止表单提交 -
开发者控制台有错误吗?
-
我不确定你是否需要解析响应,你可以跳过
data = $.parseJSON( data );这一行 -
我同意@cl3m。如果服务器返回的是 json 格式的数据,则无需再次解析。
标签: javascript jquery json web-services post