ajax调用后图像加载失败

时间:2013-04-10 17:55:20

标签: javascript jquery html ajax zend-framework

我是新来的,我有一个问题,我找不到答案......

我在Zend上使用MVC运行了一个Web应用程序。在客户端,使用Jquery我执行Ajax调用,以Json格式返回一些数据。使用javascript方法,我能够创建与结果相对应的HTML代码。直到这里,一切都运作良好: - )

我的问题是当我尝试生成一个html组件,比如Image需要一个URL。

这是我的代码:

<script type="text/javascript">
    $.getJSON("/index/items", function(data) {
        var items = [];
        $.each(data, function(key, val) {
            items.push('<li id="resultList-' + val.id + '" class="resultList"><img src="images/item.jpg" alt="img">' + val.name + '</li>');
        });

        $('<ul/>', {
            'id': 'resultList',
            'class': 'myClass',
            html: items.join('')
        }).appendTo('#divResult');
    });
</script>

<div id="content">
    <div id="divResult"></div>
</div>

所以我输入了图片src="images/item.jpg

我的问题是找不到图片,我只获得'alt'标签 - &gt;错误404。

当我打开firebug时,我可以在URL上看到GET查询:

  

http://myWebsite/controller/images/item.jpg

当然,服务器在这里找不到,因为我将图像放在: /project/public/images文件夹...

据你说:

  1. 您认为实施是否良好(安全)?
  2. 解决问题的最佳方法是什么?
  3. 请理解这一切对我来说都是新的,我会尝试学习。

1 个答案:

答案 0 :(得分:0)

处理此问题的最佳方法是将其置于相对路径中。

示例目录结构是:

project/
   html/
     htmlfile.html //references the image file
   js/
     jsfile.js //references the image file
   images/
     item.png

然后你需要使用

<img src="../images/item.jpg" alt="img" />

指定图像文件相对于访问图像的文件的路径。