以下の私の関数はAJAX呼び出しを行い、無効なJSONオブジェクトが返されたため、結果を有効なJSONオブジェクトに手動で解析する必要があります(これは機能します)。問題は、JSON オブジェクトを元の呼び出し関数に戻すときに、オブジェクトが正しく戻されないことです。
3 番目のアラートのみを入力すると、オブジェクトに対して「無効」と表示されます。ただし、3 つのアラートすべてを入力すると、アラート 2 のみが無効と表示されます (1 と 3 はオブジェクトを表示します)。これは、これらの変数間でオブジェクトを渡すタイミングの問題である可能性があると信じています。明らかに最終的なコードにアラートを入れることができないため、これを解決する方法に関する推奨事項。
function loadDocuments(){
var myDocuments = getDocs();
alert('third response ' + myDocuments);
}
function getDocs() {
var myURL = "someURL";
var response;
$.ajax({
url: myURL,
type: 'GET',
dataType: 'json',
complete: function(docData) {
if(docData.status==200){
response = parseDocResults(docData.responseText);
alert('first response' + response);
}else{
response = "Documents failed to load";
}
}
});
alert('second response' + response);
return response;
}