跨域JSONP请求返回Uncaught SyntaxError:意外的令牌:

时间:2012-02-01 01:05:23

标签: jquery ajax coffeescript jsonp

您好我正在尝试从API获取数据。

我使用ajax调用但后来总是收到错误消息 未捕获的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 个答案:

答案 0 :(得分:1)

你的JSON是什么样的?听起来很糟糕。验证它here

同样使用jQuery的$.getJSON,你不需要指定一个回调函数,它会为你生成一个随机名称,你可以正常使用success()回调。

答案 1 :(得分:0)

使用$ .getJSON URL字符串,追加'?callback = dummyDummy',其中dummyDummy是将用作回调函数名称的任何字符串值;你不需要在其他任何地方定义dummyDummy。我成功测试过的jQuery版本是1.5.1。