【发布时间】:2013-03-02 13:51:59
【问题描述】:
我有 jQuery 移动应用程序,当用户成功登录时,我必须显示通过 Ajax 加载的多页模板内容和动态 json 解析。
现在当我调用 Ajax 时,它总是只进入错误部分。但我在谷歌浏览器控制台中检查了错误部分收到了返回值。那么为什么它不会成功阻止
这是我的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>
<title>Insert title here</title>
<script>
(function($) {
$.fn.getPageData = function() {
var finalData = "";
$.ajax({
url : "http://india.msg91.com/api/androidRoute4.php?user=admin_sapna&password=***********",
type : "GET",
success : function(data) {
finalData = '<div id="index" data-role="page" data-url="index" tabindex="0" class="ui-page ui-body-c ui-page-active" style="min-height: 386px;"><div data-role="header" class="ui-header ui-bar-a" role="banner"><h3 class="ui-title" role="heading" aria-level="1">First Page</h3></div></div>';
},
error : function(result) {
finalData = '<div id="index" data-role="page" data-url="index" tabindex="0" class="ui-page ui-body-c ui-page-active" style="min-height: 386px;"><div data-role="header" class="ui-header ui-bar-a" role="banner"><h3 class="ui-title" role="heading" aria-level="1">Error Page</h3></div></div>';
}
});
this.append(finalData);
};
})(jQuery);
$(document).ready(function() {
$('body').getPageData();
//$(a).appendTo("body");
});
</script>
</head>
<body>
</body>
</html>
【问题讨论】:
-
你可能不应该在这里为你的 api 发布工作凭据。
-
您可能不应该一开始就在客户端提供您的凭据。
-
哦,是的,那也是。 :)
-
this.append(finalData);在 ajax 回调之外不起作用,AJAX 是异步的。登录是否会导致重定向到https?由于跨域,这将导致 ajax 错误。还是您调用的 URL 与页面在同一个域上? -
ajax = asynchronous ...如果您没有使用
async: false设置ajax 请求,您的脚本应该在this.append(finalData);这一行遇到错误。最好将this.append放在成功/错误函数中
标签: jquery ajax json cordova jquery-mobile