당신이 비동기 AJAX와 오류를 얻고있는 이유는 기능이 즉시 서버로부터 응답을 받기 전에 잘되는 반환한다는 것입니다. 따라서 가비지 데이터에 JSON.parse()
이 호출되어보고있는 오류의 원인이됩니다.
이 솔루션은 구문 분석을 사용하면 서버에서 응답을받을 후 일어날 수 있도록하는 것입니다 : 내가 jQuery를 $ .getJSON을 사용하기로 결정
if(year !=""){
//Get vehicle json and store into vehicles_json
getJson(
js_base_url,
function(makes_json) {
//Set makes equal to makes dropdown
var makes = $("#make");
//empty dropdown
makes.empty();
var makes_array = [];
//loop through makes_json json
$.each(makes_json, function() {
makes_array.push('<option value="', this.model_make_display, '">', this.model_make_display, '</option>');
});
makes.html(makes_array.join(''));
}
);
}
function getJson(url, callBack) {
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
global: false,
success: function(json_response) {
callBack(json_response);
}
});
}
이 왜 false로 설정해야합니까? 사실, jQuery의 해당 기능은 더 이상 사용되지 않습니다. http://stackoverflow.com/questions/11448011/jquery-ajax-methods-async-option-deprecated-what-now –
true로 설정하면이 메시지가 표시됩니다. : catch되지 않은 구문 에러 : 예기치 않은 토큰 U 다음은 비동기과 같은 페이지로 설정의 진정한 http://bit.ly/1aJRYiC –
@musical_coder 비동기 사이트'에 따르면 다음을 사용하는 경우 FALSE '은 사용되지 않습니다 jqXHR의 지연된 API. 약속 대신 이전 콜백을 사용하는 경우 jQuery에서 동기식 AJAX를 계속 사용할 수 있습니다. –