내 JSONP 데이터를 변수에 저장하는 데 문제가 있습니다. Google 파이 차트의 입력으로 사용할 수 있도록 숫자를 변수에 저장해야합니다.JSONP를 변수에 저장하는 방법은 무엇입니까?
내 test.json :
{
"name": "ProjA",
sp": 10,
"current": 20
}
지금 내가 SP 값을 얻으려면 예를 들어.
나는 JQuery와 함께 노력했다 :
var sp = (function() {
var sp = null;
$.ajax({
'async': false,
'global': false,
'url': test.json,
'dataType': "json",
'success': function (data) {
json = data.sp;
}
});
return json;
})();
가 지금은 변수 SP에 숫자 10을 얻고 싶었다. 그리고 나서 구글 차트에 sp를 넣으십시오 :
var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addRows([
['Finished', sp,
['In Progress', 1],
['Canceled', 1],
['Rejected', 2]
]);
이것은 단지 부품 코드 일 뿐이며, 수입품은 작동하지 않습니다. 변수의 저장에 문제가 있다고 생각합니다. 누군가 나를 도울 수 있습니까?
중요 : 웹 서버가 없습니다! 교차 도메인을 피하려면 JSONP를 사용해야합니다!
편집 : 콘솔 상태에서의 오류로,
function getData(callback) {
$.ajax({
async: false,
global: false,
url: 'test.json', // make sure that you quote your filename
dataType: 'jsonp', // this is meant to be jsonp, not json
success: function (data) {
console.log(data);
callback(data.sp);
}
});
}
그러나 크로스 도메인이 여전히 문제가 될 것 같습니다 : 나는 아래의 예를 시도
는 "XMLHttpRequest의 수 없어 로드가 유효하지 않습니다. 원본 'null'은 액세스가 허용되지 않습니다. jquery-1.11.1.min.js : 4 "
솔루션을 계속 검색 중입니다.
json 데이터의 sp 앞에 큰 따옴표를 잊어 버렸습니다. – Mivaweb
정상적인 기능과 동일한 방식으로 비동기 호출로 구성된 함수에서 데이터를 반환 할 수 없습니다. 'json' 변수는 발견하는 동안 비어 있습니다. 당신은 어떤 설명의 콜백을 사용해야합니다. – Andy