1

您好,我遇到了一个我正在尝试使用 phonegap 构建的 android 应用程序。我尝试构建的应用程序从我在本地安装的 wordpress 站点检索提要。我已经安装并测试了 JSON-API 插件并且它工作正常。

但是当我使用带有 Eclipse 的 phonegap 创建一个 android 应用程序时,我没有通过 javascript 加载提要。

我在代码所在的 projectfolder/assets/www 文件夹下创建了一个 html 文件

<!DOCTYPE HTML>
<html>
    <head>
        <script src="jquery.js"></script>
        <script src="cordova.js"></script>
        <script>
                jQuery.support.cors = true;
                var target_div = "#contents";
                var nextID = null;
                var prevID = null;
                var api_read_url = "http://127.0.0.1/wordpress_phonegap/?json=get_post&dev=1&id=";
                var init_url = "http://127.0.0.1/wordpress_phonegap/?json=get_post&dev=1&p=1";
                function getID(url) {
                    var str = new String(url);
                    var x = str.split("=");
                    var id = x[1];
                    return id;
                }

            function readSinglePost (url,target_div) {
                var URL = url+"&callback=?";

                console.log(URL);
                jQuery.ajax({
                        url: URL,
                        dataType: "json",
                        jsonp: null,
                        jsonpCallback: null,
                        success: function(data) {
                            alert(data);
                            jQuery(target_div).html("");
                            try{
                                jQuery(target_div).append("<h1>"+data.post.title+"</h1>");
                                jQuery(target_div).append(data.post.content);
                                jQuery(target_div).append("<small>"+data.post.date+"</small>");
                            } catch (e){
                                console.log("error console");
                            } 
                            try {
                                nextID = getID(data.next_url);
                            }
                            catch (e) {
                                ;
                            }
                            try {
                                prevID = getID(data.previous_url);
                            }
                            catch (e) {
                                ; // you should include some of your own error-handling code or
                            }
                } ,
                        error: function(error){
                            console.log("error console");
                        }
            });
            }
            //Renew next and previous buttons
            function getNext(){
                jQuery("#next").click(function(){
                    var id = nextID;
                    var nextURL = api_read_url + id;
                    readSinglePost(nextURL, target_div);
                });
            }
            function getPrevious(){
                jQuery("#previous").click(function(){
                    var id= prevID;
                    var prevURL = api_read_url + id;
                    readSinglePost(prevURL, target_div);
                })
            }

            jQuery(document).ready(function() {
                readSinglePost(init_url, target_div);
                getNext();
                getPrevious();
            });
        </script>
    </head>
    <body>
        <div id="main">
            <button type="button" id="previous">Previous</button>
            <button type="button" id="next">Next</button>
            <div id="title"></div>
            <div id="contents"></div>
        </div>
    </body>
</html>

当我使用 firefox 和 firebug 打开此文件时,我在控制台中收到以下错误。

SyntaxError: invalid label
"status": "ok",

我明白发生了什么。因为它是一个跨浏览器交互,所以 json 以 jsonp 格式发送,因此 json 值被包装在一个函数中发送。我怎样才能正确获得价值?

我已经阅读了几个主题和文章,但不幸的是我没有找到解决方案。示例来自《WordPress Mobile Applications with PhoneGap》一书中的教程

4

0 回答 0