我已经尝试了以下这些问题:(SO不会让我发布超过2个链接由于声誉,所以我刚刚包括的路径)
> questions/16344933/angularjs-jsonp-not-working/16352746#16352746
> questions/19269153/jsonp-request-in-angularjs-doesnt-work-like-in-jquery
> questions/19669044/angularjs-getting-syntax-error-in-returned-json-from-http-jsonp
其中很多……
我试过的事情
我已将& callback = JSON_CALLBACK添加到网址的末尾。我已经更改了配置设置,如responseType:’JSON’。我还重新排列http.jsonp请求多次,以确保它不是程序化/文本(http({})& http.jsonp)
这是我要做的事情:
使用角度jsonp请求(服务器不允许CORS)从routingnumbers.info/api/获取信息。我可以使用jQuery成功地提出请求,但是我无法成功地使用这个角度。
这是相应的测试小提琴:http://jsfiddle.net/dqcpa/14/
如你所见,我收到两个错误:
>资源解释为脚本,但使用MIME类型text / plain传送:“https://routingnumbers.herokuapp.com/api/data.json?rn=071000013&callback=angular.callbacks._0”。 angular.min.js:97
>未捕获语法错误:意外的令牌:
但是,如果您检查chrome devtools – NETWORK中的响应,它是正确的:虽然我知道jsonp将返回jsonpfunction({“MyJson”:“Data”})内部的响应,它是挂在哪里。
这是原始代码:
//$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有角度?我假设可能有一些我可以做的事情(sans jquery)来修改标题,但是我还没有找到任何信息。我也认为这可能是一个服务器问题(虽然,如果它在jquery中正常工作,那不会是这个问题)。也许这可能是与HTTPS
TL:DR – Angular JSONP请求无效,但使用相同的URL,jQuery JSONP请求正在运行。参考上面的代码,我还缺少什么?
任何帮助都是极好的!
编辑:一些标点符号和东西。
解决方法
How to get rid of Uncaught SyntaxError: Unexpected token :尝试在您的服务器端json调用周围添加angular.callbacks._0(JSON)。它为我工作