$ http.Jsonp()在Angular 1.6中不起作用

时间:2018-04-06 10:25:32

标签: angularjs https jsonp angular-promise angularjs-service

我正在研究Angular 1.6.9。我使用jsonp方法来获取我的回复。我的回答是回调功能。我在.success()中使用angular 1.4.9函数,我能够成功解析我的Jsonp回调响应。在这里,我附上了我的工作小提琴。 http://jsfiddle.net/sathees552/m7hh3362/

我正在使用angular 1.6.9,但由于.success()方法已被弃用,我使用的是.then()函数,以及$sce.trustAsResourceUrl(url)。但我无法解析我的回复。它给出了以下错误

  

未捕获的ReferenceError:未定义projectInstance

我已经在我的控制器中定义了projectInstance,但仍然无法识别。但我在angular 1.4.9中使用的方法工作得很好。在这里,我附上了我的plunker链接,这是无效的 https://plnkr.co/edit/TidicooyborGTGHvUzJK?p=preview

我的Html代码:

<div ng-app="myapp" ng-controller="personCtrl">
     <button ng-click="doRequest()">Make JSONP request</button>
  </div>

我的js代码:

var app = angular.module('myapp', []);
  app.config(function($sceDelegateProvider) {
      $sceDelegateProvider.resourceUrlWhitelist([
          'self',
          'http://www.mocky.io/v2/**'
      ]);
  });
  app.controller('personCtrl', ['$http', '$scope', '$sce', function($http, $scope, $sce) {
      $scope.doRequest = function() {
          //creating 
          var projectInstance = {
              jsonpCallback: function(commandName, responseData) {
                  alert(responseData.projectSnapShot[0].projectId);
              }
          }

          var url = "https://www.mocky.io/v2/5ac61eed4a000061007e065b";
          var trustedUrl = $sce.trustAsResourceUrl(url);
          $http.jsonp(trustedUrl, {
              jsonpCallbackParam: 'jsonpCallback'
          }).then(function(data) {
              eval(data)
          }, function(error) {
              console.log(error);
              return error;
          })
      };
  }]);

我的回复:

projectInstance.jsonpCallback("getActiveProduct",{"totalRecords":null,"projectSnapShot":[{"projectId":"333333","projectNumber":"123456","projectStatus":"Active"}]})

0 个答案:

没有答案