2017-03-09 153 views
0

我有一个动态Web项目,在这个项目中,我尝试从AWS实例上的mysql数据库中显示元素。 因此,在我的数据库中,我有许多元素(名称,城市,imageURL),imageURL是来自亚马逊S3中图像的URL。通过从S3获取图像的URL从S3显示图像

在我的html代码中,如果我直接输入网址,图像就会显示出来,但如果我从mysql数据库中取回网址(带有javascript函数),我得到了正确的url,但图像不是显示,我有这个错误:

GET https://s3-us-west-2.amazonaws.com/.... 403 (Forbidden) 

所以你知道这是行不通的吗?

编辑:这是我的javascript代码:

var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
if (this.readyState == 4 && this.status == 200) { 
    myFunction(this); 
} 
}; 
xhttp.open("GET", "rest/restaurants", true); 
xhttp.send(); 

function myFunction(xml) { 
    var xmlDoc = xml.responseXML; 
    var name; 
    var id; 
    var imageURL; 
    var htmlText = ""; 

for (i = 0; i< xmlDoc.getElementsByTagName("id").length; i++){ 
    name = xmlDoc.getElementsByTagName("name")[i].childNodes[0].nodeValue; 
    id = xmlDoc.getElementsByTagName("id")[i].childNodes[0].nodeValue; 
    imageURL = xmlDoc.getElementsByTagName("imageURL")[i].childNodes[0].nodeValue; 

    console.log(imageURL); 

     htmlText = htmlText + 
     "<div class=\"Popular-Restaurants-grid\">" + 
     "<div class=\"col-md-3 restaurent-logo\">" + 
     "<img src="+ imageURL + "class=\"img-responsive\"/>"+ 
     "</div>"+ 
     "<div class=\"col-md-2 restaurent-title\">"+ 
     "<div class=\"logo-title\">"+ 
     "<h4 id=\"test\"><a href=\"#\">" + name + "</a></h4>"+ 
     "</div>"+ 
     "</div>"  
     } 
    document.getElementById("restaurantsContainer").innerHTML = htmlText; 
} 
+0

您需要显示一些代码。这听起来像JavaScript正在做的东西的URL,但我们不能告诉没有代码。 – stdunbar

+0

我加了我的javascript代码! – Adrien

回答

0

您当前的代码生成一个URL,如:

<img src=https://s3-us-west-2.amazonaws.com/someText/text/logo1.jpgclass="img-responsive"/>

添加一个空格,以这条线:

"<img src="+ imageURL + "class=\"img-responsive\"/>"

看起来像:

"<img src="+ imageURL + " class=\"img-responsive\"/>"

注意单词 “类” 之前的空间。

+0

非常感谢!这是我的问题! – Adrien