Я пытаюсь заполнить div картиной НАСА дня, используя свой API.Не определено при попытке вытащить json img
Я написал запрос AJAX в JQuery, но когда я исполню функцию, я просто получить ссылки на undefined
Чего не хватает в моей функции?
$(document).ready(function() {
$('form').submit(function(evt) {
evt.preventDefault();
//AJAX
var url = "https://api.nasa.gov/planetary/apod?api_key=KmKClvkvdi3Ug54cIAhw8sd43XnYVitmTz2lAjGw"
function nasaData(data) {
var photoHTML = '<div>';
$.each(data, function(i, photo) {
photoHTML += '<a href="' + photo.url + '">';
photoHTML += '<p>"' + photo.explaination + '"</p>'
photoHTML += '<img src="' + photo.copyright + '"> </a>';
});
photoHTML += "</div>";
$('#photos').html(photoHTML);
}
$.getJSON(url, nasaData);
}); //end eventsubmit
});
Markup
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="flicker.css">
<title>Testing Access to Flicker API</title>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="flicker.js"></script>
</head>
<body>
<div class="container">
<h1 class="text-center">Welcome to the API search test.</h1>
<h4 class="text-center">Use the form below to search the open NASA API based.</h4>
<form>
<div class="col-sm-4 form-group">
<input type="submit" class='button' />
</div>
</form>
</div>
<div id="photos"></div>
</body>
</html>
Я думаю, вы должны попросить, чтобы JSON на стороне сервера, я не вижу заголовок CORS Access-Control-Allow-Origin: *, чтобы позволить вам сделать запрос внутри браузер. – progysm
@progysm CORS здесь не проблема. Сервер действительно корректно возвращает «Access-Control-Allow-Origin» для любого домена ссылки. – Brad