test
test

Reputation: 18200

jQuery JSONP request of image gets 403 error

OK I have a simple script at http://kleague.org/test/

Type a movie name and it should output the movie name, year, and get the movie poster URL (if there is one, there usually is.)

Well, I just tried it and I got a 403 error on the image. it GOT the image but it didn't display it. What am I doing wrong?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />


    <title>IMDB api</title>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>


    <script type="text/javascript">
    $(document).ready(function()
{




$('#search').click(function(){

$(".loading").css("display", "inline");


       var yourMovie = $("#movie").val();
  $("#debug").append("You are searching for ... "+yourMovie+"\n");

dataString = "callback=?&t=" +yourMovie;

$.getJSON('http://www.imdbapi.com/', dataString, function(html){

$(".loading").css("display", "none");

    var movieSugg = html.Title;
    var movieYear = html.Year;
    var movieImg = html.Poster;

$("#movieposter").attr("src", movieImg);
$("#movieposter").css("display", "inline");

$("#more").append("You found: " + movieSugg + " ("+movieYear+") ["+movieImg+"] \n");
});

});


});
</script>

</head>
<body>

<img src="" alt="Poster" id="movieposter" style="display: none;float:left;margin-right:10px;" />
<form method="get" action="#" enctype="text/html" > 
<input type="text" id="movie" maxlength="50" /> <a href="#" id="search">Search now!</a> <img alt="Searching..." style="display: none;" class="loading" src="ajax-loader.gif" title="Searching..." />

</form>

<div id="other">

  Trigger the handler
</div>
<br />
<textarea id="debug" style="width: 500px;height:150px;border:1px solid black;font-face:typewriter;"></textarea><br />
<textarea id="more" style="width: 500px;height:150px;border:1px solid red;font-face:typewriter;"></textarea>

</body>
</html>

Upvotes: 0

Views: 763

Answers (1)

Rene Pot
Rene Pot

Reputation: 24815

JSONP requires a function/script to be returned. Loading an image through AJAX has no use. Just appending the image itself will do the trick.

<img src="{html.poster here}" />

Upvotes: 1

Related Questions