我正在创建移动webapp的前端,但我还不想使用后端语言。
我在我的文件系统中创建了文件夹,模拟了模拟JSON响应的restful链接和文件。所以我有一个名为“check”的目录和内部文件“123”,内容如下:
{“exists”:“yes”}
现在,这是我的整个页面,因此您可以重现问题,即始终提示错误:
<!DOCTYPE html>
<html>
<head>
<!-- meta info -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<!-- .js files -->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script>
</head>
<body>
<div data-role="content">
<form id="form_check_person">
<div data-role="fieldcontain">
<input type="text" id="person_id" name="person_id" value="" />
</div>
<div data-role="fieldcontain">
<input type="submit" value="Check me" />
</div>
</form>
<script type="text/javascript">
$("#form_check_person").submit(function() {
$.ajax({
url: "check/" + $("person_id"),
type: "GET",
dataType: "json",
success: function() {
alert('success');
},
error: function() {
alert('error');
}
});
});
</script>
</div>
</body>
</html>
修改
我已将.val()
添加到#{'#person_id'}
并仍然收到错误:/
答案 0 :(得分:7)
我不确定您对$("person_id")
做了什么。试试这个:
$("#person_id").val();
答案 1 :(得分:1)
由于请求本身中的错误(例如,未找到客户端404页面或服务器端503服务不可用),始终会调用错误函数。
我怀疑是一个狡猾的网址。
尝试在Ajax调用之外构建URL变量(var theLink = "check/" + $("#person_id").val()
)。在调试器或console.log中检查它以确认它。检查URL是否确实可用。然后在您的Ajax调用中将“theLink”传递给url参数。
仍然无法使用?一些后续问题:
#person_id是否有值属性,或者是必须使用.html()或.text()而不是.val()来获取“值”的元素?
一般来说,“person_id”这个名字听起来像是一个可以重复使用的元素。 IE浏览器。没有看到你的应用程序的其余部分,我可以想象有多个人。既然如此,您确定正确使用了ID吗?它应该是一个类吗?一般来说,您是否选择了预期的元素?
目录是“检查”当前页面的一层深度,还是需要从根目录发起?
此外,JSON是否以适当的编码发送?响应是什么样的?
JavaScript控制台报告了什么?如果没有错误,GET的“响应”是什么样的?是否有可用的JSON选项卡(这将确认它已被接受为JSON)。
有许多变数岌岌可危......一个现实的例子会很精彩。 ; - )
答案 2 :(得分:0)
而不是:
url: "check/" + $("person_id")
...试试:
url: "check/" + $("#person_id").val()
...来代替。
答案 3 :(得分:0)
你的id forgot #
调用元素有问题,它应该是
url: "check/" + $("#person_id").val()