适用于iOS的Cordova应用程序未显示通过ajax加载的图像

时间:2013-07-24 14:26:52

标签: jquery ios ajax jquery-mobile cordova

我有这个Cordova应用程序从外部URL加载页面。我删除了cordova脚本,主要依赖于jquery mobile,继续开发它像移动网站一样,在带有Firefox的Windows PC上。 网站中的一个页面必须加载一些产品并将其显示在列表中,并带有图像和名称。所有产品数据都通过AJAX加载,图像以名称(10.jpg)的形式发送,我只是将一些img标签附加到列表中,并带有一定的src。 在Firefox中一切正常,但是当我在Xcode中构建应用程序以在模拟器(iOS 6.1)中看到它时,会出现蓝色问号而不是图像。 这是管理通过ajax收到的结果的代码:

success: function(result) {
        var vs = eval(result);
        var products = vs['products'];
        for(var i = 0; i < products.length; i++) {
            $(".ui-page-active #listing").append('<div class="prodwrapper"><img class="pimg" src="/images/'+products[i].pimg+'" border="0" alt="" /><div class="pname"><a href="product.php?id='+products[i].prodid+'">'+products[i].prodname+'</a></div><div class="pdetails"><div class="paddcommbtn"><a href="">add comments</a></div><div class="preadbtn"><a href="">read</a></div><div class="pprice">$'+products[i].prodprice+'</div></div></div>');
        }
    }

所以,问题很简单: 我做错了什么,我的错误在哪里,我该怎么做才能避免这个问题? 我必须提一下,在模拟器中,ajax请求的工作也很慢。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

你的问题很明显。

如果您从远程源加载页面,这意味着您的图像也放置在远程源的某个位置,但您尝试显示的图像就像它们是您的cordova应用程序的一部分。

基本上这个位置:

/images/'+products[i].pimg+'

指向cordova assets / images目录,您不希望这样。您想将它们指向远程源。

当您使用Firefox时,您的应用程序可以直接访问,但这种情况不同,cordova应用程序充当您的移动内容的代理,同时它也充当Web服务器。每个相对链接都将作为cordova资产目录中的位置进行处理。