2016-10-10 7 views
0

요청 된 자원에 존재 : 내가되게하고 그러나Wunderground 자동 완성 API 오류 : 다음과 같이 없음 '액세스 제어가-허용하지-Origin의 헤더에 반응 내가 Axios의을 사용하여 GET 요청을 만든

searchCity: function(){ 
    return axios.get('https://autocomplete.wunderground.com/aq?query=lond' + '&format=JSON') 
    } 

오류 :

https://autocomplete.wunderground.com/aq?query=lond&format=JSON. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. 

공개 API이고 액세스 키 또는 기타 항목이 필요하지 않지만. 이 URL에서 JSON 데이터를 가져 오는 다른 방법이 있습니까?

+0

내가 봤는데을 그것으로보고 wundergrounds API가 설치되는 방법을 생각하고있다. 브라우저에서 해당 URL을 탐색하면 데이터가 다시 생성되고 jsfiddle이 동일한 요청을 실행하여 수신중인 오류가 발생합니다. 이상한 일은 jsfiddle에서 내 요청을 보았을 때입니다. jsfiddle에서 200을 반환하고 데이터를 다시 얻을 수 있지만 브라우저에서 여전히 Access-Control-Allow-Origin 오류가 발생합니다 – cstopher

+0

예 정확히 무엇입니까? 내가 겪고있는, 내 요청의 헤더에 '원산지'값을 변경하는 방법을 알지 못한다면 확실하지 않은지 모르겠다. –

답변

1

그래서 한 시간 쯤 걸렸습니다. 결국 는 특정 서버가 수행하지 않는 것 같습니다 : 자신의 응답 헤더에

Access-Control-Allow-Origin: * 

을, 그러나 일부 서버가 JSONP보다는 표준 JSON 요청과 호환됩니다. 하지만 서버가 JSON-P도 지원해야한다는 점이 다릅니다. URL의 format = jsonp에도 불구하고 서버는 JSON-P가 아니라 JSON을 사용하여 응답합니다.

그것이이 경우

그것은이었고, 다음 코드는 반응-JSONP 사용하여 작동합니다

searchCity: function(){ 
    return jsonp('https://autocomplete.wunderground.com/aq?query=lond', { param: 'cb' }, function (err, data) { 
     console.log(data.RESULTS); 
    }) 
이 문제에

자세한 정보는 여기 발견 :

Unexpected Token : when trying to parse a JSON string