Кросс-доменный JSONP-запрос возвращает Uncaught SyntaxError: Неожиданный токен: - PullRequest
2 голосов
/ 01 февраля 2012

Привет. Я пытаюсь получить данные из API.

Я использую вызов ajax, но всегда получаю сообщение об ошибке Uncaught SyntaxError: Неожиданный токен:

Может ли кто-нибудь дать мне пример того, как сделать правильный вызов jsonp.

ниже мой фрагмент кода. Я использую coffeescript

get_shipping:=>
    shipper_id = @datapayload['general'][0]['shipper']
    origin = @datapayload['general'][0]['origin']
    destination = @datapayload['general'][0]['destination']
    if shipper_id == '001'
      expedition = 2
    if shipper_id == '002'
      expedition = 1
    if shipper_id == '003'
      expedition = 5
    if shipper_id == '004'
      expedition = 6
    api_code = 'my_api_code'
    @url = 'http://www.ongkoskirim.com/api/0.2/?id=' + api_code + '&o=' + origin + '&d=' + destination + '&c=' + expedition + '&callback=jsonhandler'
    $.getJSON @url, (data)=>
      alert jsonhandler
    $.ajax(
      url:@url
      headers:{'Access-Control-Allow-Origin': '*'}
      crossDomain: 'true'
      type:'GET'
      dataType:'jsonp'
      jsonpCallback:'jsonhandler'
      success:(data)=>
        console.log data
      error:=>
        console.log "error"
    )

любая помощь приветствуется. Thx

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Как выглядит ваш JSON? Похоже, это неправильно. Подтвердите это здесь .

Также с jQuery $.getJSON вам не нужно указывать функцию обратного вызова, она сгенерирует случайное имя для вас, и вы можете использовать success() обратный вызов, как обычно.

0 голосов
/ 16 января 2013

С помощью строки URL $ .getJSON добавьте '? Callback = dummyDummy', где dummyDummy - любое строковое значение, которое будет использоваться в качестве имени функции обратного вызова;вам не нужно определять dummyDummy где-либо еще.Версия jQuery, с которой я успешно протестировал, - 1.5.1.

...