这两天在学习jQueryMobile过程中,遇到一些问题。把解决的方法记一下,省得下次再到处找.
1、使用$.getJSON总是不触发callback函数的问题:
$.getJSON调用的方式如下:
客户端:
$.getJSON(serviceURL + 'getreports.php?id='+id, function (data) {alert("调用成功.");});
服务端:
echo '{"items":'. json_encode($employees) .'}';
可是测试时却未触发回调函数,用工具监控到服务端已返回的json结果,该结果用工具查看,是正确的json格式。
后来通过在脚本中设置错误捕获:
$.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) { alert(textStatus); alert(errorThrown); alert(XMLHttpRequest.responseText); }});
得知出错原因是parseerror,即jQuery无法解析服务器返回的json内容。
后来改成JSONP的方式:
客户端:
$.getJSON(serviceURL + 'getreports.php?id='+id+"&format=json&callback=?", function (data) {alert("调用成功");});
服务端:
echo $_GET['callback'] . '({"items":'. json_encode($employees) .'})';
问题解决。
JSONP的解析可以参考以下网站:
http://zh.wikipedia.org/zh/JSONP
=================================
2、在本地目录中,一个页面中链接到另一个页面时,报错“Error loading page”:
该问题在官网上有说明:
http://jquerymobile.com/demos/1.0a4.1/docs/pages/docs-pages.html
按照文章中所说,在<a>标签中增加“rel="external"”即可。
例如:
<a href="employeedetails.html?id=123" rel="external">