2017-04-15 10 views
-1

Ich versuche, Informationen aus der Movie DB-API abzurufen, und der jquery-Code scheint nicht ausgeführt zu werden. Ich dachte, dass mein JSON-Code möglicherweise deaktiviert ist, aber nach dem Testen vor wichtigen Funktionen erkannte ich, dass es nicht ausgeführt wurde. Hier ist das Skript:jquery-Skript wird nicht in HTML ausgeführt

<script type="text/javascript"> 
//test 0 
$("#title").html('<h1>JS Loaded</h1>'); 
$(document).ready(function(){ 
    //test 1 
    $("#title").html('<h1>Document Ready</h1>'); 
    var getPoster = function(){ 
    //test 2 
    $("#title").html('<h1>Get poster Executed</h1>'); 
    $.getJSON(
    "http://api.themoviedb.org/3/discover/movie?with_cast=31&sort_by=popularity.desc&api_key=d34d1c194fd655e99cc15a631bad6760&page=1", 
    function(data) { 
    if (data != "Nothing found."){ 
     $('#poster').html('<img alt="Film/Show Poster" width="101px" height="150px" src=' + data.results[0].poster_path + ';>'); 
    } else { 
     $('#title').html('<h1>NO POSTER WAS FOUND</h1>'); 
    } 
    }); 
    } 
    $('#poster').click(getPoster); 
}); 

jQuery im Header deklariert, etwa so:

script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/ 3.2.1/jquery.min.js "Integrität =" sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4 = "crossorigin =" anonyme ">

Jeder Einblick in das Problem könnte sehr geschätzt werden.

+1

genauer zu sein, was ist und was nicht funktioniert und auch alle Fehler melden in der Konsole (falls vorhanden). Nehmen Sie sich ein paar Minuten Zeit und lesen [fragen] – charlietfl

+1

Haben Sie Fehler in der Konsole? –

+2

Werden Fehler angezeigt? Außerdem wird Ihr IMG-Tag nicht ordnungsgemäß geschlossen. Verwenden Sie doppelte Anführungszeichen, um den Quellcode zu öffnen und zu schließen. – cosmoonot

Antwort

-1

Ich hatte dies in einer ähnlichen Situation passiert, außer mit einem Get und einem Post. Am Ende tauschte ich nur einen Ajax-Anruf. versuchen Sie dies:

$.ajax({ 
    dataType: "json", 
    url: "http://api.themoviedb.org/3/discover/movie?with_cast=31&sort_by=popularity.desc&api_key=d34d1c194fd655e99cc15a631bad6760&page=1", 
    success: (data) => { 
if (data != "Nothing found."){ 
     $('#poster').html('<img alt="Film/Show Poster" width="101px" height="150px" src=' + data.results[0].poster_path + ';>'); 
    } else { 
     $('#title').html('<h1>NO POSTER WAS FOUND</h1>'); 
    } 
}, 
}); 

zitieren Sie mich nicht auf diese, weil es nicht ausdrücklich so in der Dokumentation zu sagen hat, aber ich denke, der .getJSON() Anruf die Antwort hat die get als zweiten Parameter sendet zurück und nicht die tatsächlichen Antwortdaten, die Sie vom Endpunkt erhalten haben.

+0

Fühlen Sie wie Down-Voting, ohne konstruktive Kritik zu geben, sollte verboten werden. – Raults

0

In allen Wahrscheinlichkeiten ist dies nur ein CORS-bezogener Fehler.

Ihre AJAX-Anfrage schlägt fehl, weil der Ursprung der Anfrage (durch JavaScript innerhalb Ihrer HTML-Datei) und der API-Server "Cross Origin" (grundsätzlich verschiedene Domains und/oder Ports) sind, und Browser neigen dazu einzuschränken " Resource Sharing "zwischen ihnen für die Sicherheit.

Wenn Sie Chrome verwenden, versuchen Sie, eine Erweiterung wie CORS Toggler hinzuzufügen, aktivieren Sie sie und versuchen Sie es erneut.

0

Okay, ich habe das Problem gefunden und jetzt fühle ich mich wie ein Idiot. Meine Tests versuchten, auf eine HTML-ID und nicht auf eine HTML-Klasse zu verweisen, also dachte ich, dass dies ein jquery-Problem war. Es stellte sich heraus, dass ich einen zusätzlichen URL-Abschnitt benötigte, damit die API ein Image abrufen konnte. Die TMDb API funktioniert jetzt gut, danke für die Hilfe!

Verwandte Themen