我有这个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请求的工作也很慢。
提前谢谢!
答案 0 :(得分:1)
你的问题很明显。
如果您从远程源加载页面,这意味着您的图像也放置在远程源的某个位置,但您尝试显示的图像就像它们是您的cordova应用程序的一部分。
基本上这个位置:
/images/'+products[i].pimg+'
指向cordova assets / images目录,您不希望这样。您想将它们指向远程源。
当您使用Firefox时,您的应用程序可以直接访问,但这种情况不同,cordova应用程序充当您的移动内容的代理,同时它也充当Web服务器。每个相对链接都将作为cordova资产目录中的位置进行处理。