2016-10-19 7 views
1

아래 코드로 다음 JSON에 액세스 할 수없는 문제가 있습니다. 내 네트워크 뷰어에서 JSON을 볼 수 있지만 오류는 없지만 apiReturn 함수에서 아무것도 실행되지 않아 그 이유를 알 수 없습니다.JSON 데이터에 액세스 할 수 없습니다.

/**/ 
({ 
    "batchcomplete": "", 
    "query": { 
    "normalized": [{ 
     "from": "mouse", 
     "to": "Mouse" 
    }], 
    "pages": { 
     "18845": { 
     "pageid": 18845, 
     "ns": 0, 
     "title": "Mouse", 
     "extract": "<p>A <b>mouse</b> (plural: <b>mice</b>) is a small rodent characteristically having a pointed snout, small rounded ears, a body-length scaly tail and a high breeding rate. The best known mouse species is the common house mouse (<i>Mus musculus</i>). It is also a popular pet.</p>" 
     } 
    } 
    } 
}) 


$.getJSON("https://en.wikipedia.org/w/api.php?action=query&origin=*&format=json&exsentences=3&prop=extracts&titles=Main+Page&callback=&titles=mouse", function(apiReturn){ 
     var valueText = apiReturn.query.pages[18845].extract; 
     console.log(valueText); 
    }); 

답변

0

이것은 JSON이 아니며 JSONP입니다. 그 이유가 작동하지 않는 이유는 쿼리 문자열에 빈 callback 매개 변수가 있다는 것입니다. &callback=&titles=mouse&callback=?&titles=mouse (callback= 이후에 ?에 기입하십시오)로 변경하면 jQuery가 올바르게 처리합니다. 예컨대 :

$.getJSON("https://en.wikipedia.org/w/api.php?action=query&origin=*&format=json&exsentences=3&prop=extracts&titles=Main+Page&callback=?&titles=mouse", function(apiReturn){ 
// Only change is here ---------------------------------------------------------------------------------------------------------------^ 
    var valueText = apiReturn.query.pages[18845].extract; 
    console.log(valueText); 
}); 

더 : http://api.jquery.com/jQuery.getJSONhttp://api.jquery.com/jQuery.ajax

+0

* (.?. 한숨'' "변경 ..."문장에서, 새로 고침 공격이 표시되지 않는 경우) * –

0

외부 가짜 JSON을 사용하여 코드가 나를 위해 확인을 작동하기 때문에 서버가 올바른 JSON 데이터를 검색되어 있는지 확인합니다. json의 반응에 문제가 있어야합니다.

var fakeJsonData = "https://jsonplaceholder.typicode.com/posts/1"; 
 

 
$.getJSON(fakeJsonData, function(apiReturn){ 
 
    
 
     var valueText = apiReturn.body; 
 
     console.log(valueText); 
 
    }); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

추가하십시오 : & 콜백 =? url의 끝에.

코드는 다음과 같이 표시됩니다

$.getJSON("https://en.wikipedia.org/w/api.php?action=query&origin=*&format=json&exsentences=3&prop=extracts&titles=Main+Page&callback=&titles=mouse&callback=?", function(apiReturn) { 
     var valueText = apiReturn.query.pages[18845].extract; 
     console.log(valueText); 
    }) 
관련 문제