JSFiddle - React, Tailwind, and code Playground
avoid CORS using jquery jsonp call (Adrian Frimpong posters example)
by abubelinha
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Test One Page Web Web ">
<meta name="author" content="Adrian Frimpong">
<title>Frimmy's Github Projects</title>
<!-- Bootstrap core CSS -->
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link rel="stylesheet" type="text/css"
href="https://fonts.googleapis.com/css?family=Lobster">
<link href="main.css" rel="stylesheet">
<!-- Just for debugging purposes. Don't actually copy this line! -->
<!--[if lt IE 9]><script src="../../docs-assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="https://frimmy.github.io/">Frimmy - JSON project demo</a>
</div>
<div class="collapse navbar-collapse">
<!-- <ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="http://adrianfrimpong.com/">Blog</a></li>
...
JavaScript
$(function(){
//This is to remove the validation message if no poster image is present
$('#term').focus(function() {
var full = $('#poster').has("img").length ? true: false;
if (full == false) {
$('#poster').empty();
}
});
var api_key = "0b3385b006ff4f8013eaff2b15006edb";
var baseimg = "http://image.tmdb.org/t/p/w342";
//function definition
var getPoster = function(){
//Grab the movie title and store it in a variable
var film = $('#term').val();
//check if the user has entered anything
if (film == '') {
//If the input field was empty, display a message
$('#poster').html("<h2 class='loading'>Ha! We haven't forgotten to validate the form! Please enter something.</h2>");
} else {
//They must have entered a value, carry on with API call, first display a loading message to notify the user of activity
$('#poster').html("<h2 class='loading'>Your poster is on its way!</h2>");
$.getJSON("https://api.themoviedb.org/3/search/movie?query=" + escape(film) + "&api_key=" + api_key + "&callback=?",
function(json) {
//print returned json object to familiarize with API data structure
// console.log(json);
// console.log(json.results[0].poster_path);
//TMDb is nice enough to return a message if nothing was found, so we can base our if statement on this info
if (json.total_results) {
//Display the poster and a message announcing the result
$('#poster').html('<h2 class="loading">Well, gee whiz! We found you a poster, skip!</h2><img id="thePoster" src=' + baseimg + json.results[0].poster_path + ' />');
} else {
$.getJSON("http://api.themoviedb.org/3/search/movie?query=goonies&api_key=" + api_key,
function(json){
$('#poster').html('<h2 class="loading">We\'re afraid nothing was found for that search. Perhaps you were looking for The Goonies?</h2><img id="thePoster" src='+baseimg + json.results[0].poster_path+'/>');
});
...