似乎我发现的关于 $http 或 angularjs 的几乎每个问题或解释通常都假设您可以修改请求的响应。我不能这样做,而且我得到的响应格式错误(根据 AngularJS 解析器)。它的格式错误一致,因此我可以在解析纯文本之前修改它来解决问题,但是响应拦截器和转换响应函数都会在默认(基于内容类型?)解析之后发生。
Edit:问题在于,我需要使用 JSONP 方法从另一个站点请求信息,但数据没有预期的 JSONP 回调(我仍然不确定它是否是基于浏览器的)内容或 AngularJS 代码)抛出语法错误。
新问题:有人知道解决这个问题的方法吗?
这已经过测试并且确实有效。如果您还有任何疑问,请告诉我。http://jsfiddle.net/modern Degree/Kn3Tc/ http://jsfiddle.net/moderndegree/Kn3Tc/
HTML
<div ng-app="myApp">
<div ng-controller="myController">
{{results.tada}}
</div>
</div>
JavaScript
angular.module('myApp', ['ngResource']).
factory('myService', function($http, $resource, $log){
return $resource('/', {}, {
get: {
method: 'GET',
// placed custom transform ahead of $http default
transformRequest: [function(data, headersGetter){
$log.info(data);
$log.info(headersGetter());
}].concat($http.defaults.transformRequest),
// placed custom transform ahead of $http default
transformResponse: [function (data, headersGetter) {
$log.info(data);
$log.info(headersGetter());
data = {tada:"Check your console"};
return data;
}].concat($http.defaults.transformResponse)
}
});
}).
controller('myController', function(myService, $scope) {
$scope.results = myService.get();
});
Update要使用JSONP,只需将方法切换为JSONP即可。您可以阅读有关 ngResource 的更多信息here https://docs.angularjs.org/api/ngResource/service/%24resource.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)