2017-02-01 6 views
0

Я пытаюсь сделать запрос погоды под землей, создав jsonp. В своих официальных документах говорится, что cb - это имя обратного вызова (https://www.wunderground.com/weather/api/d/docs?d=autocomplete-api&MR=1#using_results), однако я продолжаю получать сообщение об ошибке «Uncaught SyntaxError: Unexpected token:». Я пытаюсь сделать это в чистом javascript, но у меня нет такой удачи, и все примеры, которые я нашел, - это jquery-методы. Любая помощь будет оценена по достоинству.Получение неожиданного токена: после jsonp cb in Weather underground

Это пример ошибки: "Uncaught SyntaxError: Неожиданный маркер:? Водн запрос = Sacramento обратный вызов = центибар: 1"

Вот Javascript код:

var citySearch = document.getElementById("citySearchForm"); 
var search; 

function searchFormFunc(e){ 

    jsonP = "?callback=cb"; 
    cityName = document.getElementById('getCitiesInput').value; 

    var cityNameJsonP = cityName + jsonP; 

    var searchCityLink = "http://autocomplete.wunderground.com/aq?query="; 
    search = searchCityLink.concat(cityNameJsonP); 

    console.log(search); 

    var script = document.createElement('script'); 
    script.src = search; 
    document.getElementsByTagName('head')[0].appendChild(script); 

    function cb(data){ 
     console.log("fired"); 
     console.log(data); 
    } 
} 

ответ

2

Ваш URL будет

http://autocomplete.wunderground.com/aq?query=FOOBAR?callback=cb 

действительный URL через their api будет

http://autocomplete.wunderground.com/aq?query=20500&cb=cb 

Вы должны кодировать значение, и вы должны использовать & для нескольких параметров запроса.

jsonP = "&cb=cb"; 
cityName = encodeURICompontent(document.getElementById('getCitiesInput').value); 

var cityNameJsonP = cityName + jsonP; 
+0

@ epascarello The & cb = cb сделал трюк. Спасибо, я застрял там. –

+0

И проблема в том, что вы не следовали предкументации, это cb, а не обратный вызов – epascarello

+0

@ guest271314, в моем ответе есть один, в примере, показывающем, что делает OP, есть два. – epascarello

Смежные вопросы