JsonP返回“Uncaught SyntaxError:Unexpected token:”AngularJS - routingnumbers.info

时间:2014-10-08 16:50:04

标签: jquery json angularjs jsonp angular-http

我已经对这个问题进行了大量研究,希望有人可以帮助诊断出错了。

我已经尝试过查看以下SO问题:(由于声誉,我不会发布超过2个链接,所以我只是包括在内路径)

  1. questions/16344933/angularjs-jsonp-not-working/16352746#16352746
  2. questions/19269153/jsonp-request-in-angularjs-doesnt-work-like-in-jquery
  3. questions/19669044/angularjs-getting-syntax-error-in-returned-json-from-http-jsonp
  4. 其他许多人......

    我尝试过的事情: 我已将& callback = JSON_CALLBACK 添加到网址的末尾。我更改了配置设置,例如 responseType:' JSON' 。我还多次重新安排了http.jsonp请求,以确保它不是编程/文本( http({})& http.jsonp

    以下是我要做的事情: 使用角度jsonp请求从 routingnumbers.info/api / 获取信息(服务器不允许CORS)。我能够使用jQuery成功地提出请求,但我无法使用angular成功完成请求。

    以下是相应的测试小提琴: http://jsfiddle.net/dqcpa/14/

    如您所见,我收到两个错误:

    1. 资源被解释为脚本但使用MIME类型text / plain传输:" https://routingnumbers.herokuapp.com/api/data.json?rn=071000013&callback=angular.callbacks._0"。 angular.min.js:97
    2. 未捕获的SyntaxError:意外的令牌:
    3. 但是如果你检查chrome devtools中的响应 - NETWORK,那是正确的:虽然我知道jsonp会在jsonpfunction中返回响应({" MyJson": "数据"})这是它被挂起的地方。

      以下是原始代码:

      //$scope.number = '071000013';
      var routingApiUrl = 'https://routingnumbers.herokuapp.com/api/data.json?rn=' + $scope.number;
      $http({
          method: 'jsonp',
          url: routingApiUrl + '&callback=JSON_CALLBACK',
          responseType: "json"
      }).
      success(function(data){
          console.log('Success: ' + data);
      }).
      error(function(data){
          console.log('Error: ' + data);
      });
      

      是否有人使用此角色的API?我假设我可以做一些事情(没有jquery)来修改标题,但我无法找到任何信息。我也认为它可能是服务器问题(但是,如果它在jquery中正常工作,那就不是问题)。也许这可能是HTTPS的内容

      TL:DR - Angular JSONP请求不起作用,但是使用相同的URL,jQuery JSONP请求正在运行。参考上面的代码,我错过了什么?

      任何帮助都会很棒!

      编辑:一些标点和内容。

1 个答案:

答案 0 :(得分:6)

根据这个问题: How to get rid of Uncaught SyntaxError: Unexpected token :尝试在服务器端json调用周围添加angular.callbacks._0 (JSON)。它对我有用

这是plunker http://plnkr.co/edit/oX2UQRBA41FIHpwAP6AA