JSON 응답을 구문 분석하려고하는데, $ .getJSON에있는 명령을 실행할 수 없습니다.
json.html
<!DOCTYPE html>
<html>
<head>
<script src="js/jquery.js"></script>
</head>
<body>
<script>
$.getJSON("json.php?jsoncallback=?", function(data) {
var a = data[0].cve_id + 'something';
});
alert(a); //chrome says "a is not defined"
</script>
</body>
</html>
json.php : 왜
<?php
header("Content-Type: application/json", true);
echo file_get_contents("http://www.cvedetails.com/json-feed.php?numrows=10&vendor_id=0&product_id=0&version_id=0&hasexp=1&opec=1&opov=1&opcsrf=1&opfileinc=1&opgpriv=1&opsqli=1&opxss=1&opdirt=1&opmemc=1&ophttprs=1&opbyp=1&opginf=1&opdos=1&orderby=1&cvssscoremin=0");
?>
어떤 생각?
다음 :
답장을 보내 주셔서 감사합니다. 이유를 이해했습니다.
$.getJSON
에서 $.get
으로 변경했으며 data type
에서 json
으로 지정했습니다.
귀하의 AJAX 비동기입니다. 변수에는 범위가 있습니다. –
'alert (a)'가 발생하면 비동기식 AJAX 호출이 아직 완료되지 않았습니다. 'function (data)'콜백 내에서'alert (a)'를 할 필요가있다. 이 값을 사용하여 DOM을 수정해야한다면 콜백에서 그렇게해야합니다. –
_chrome은 "a not defined"_를 선언합니다. 왜냐하면'a'는 콜백 함수 내에서 _local_ 변수로 정의 되었기 때문에' $ .getJSON()'이므로 해당 함수 내에서만 액세스 할 수 있습니다 (비동기 문제 제외). – nnnnnn