javascript - ليس API JSONP API-كيفية الحصول على البيانات دون CALLBACK المعلمة



angularjs (1)

ليس واجهة برمجة تطبيقات JSONP API قانونية

واجهة برمجة التطبيقات في عنوان URL هذا ليست واجهة برمجة تطبيقات JSONP API قانونية.

يمكن الحصول عليها مع خدمة خطيرة:

app.service("dangerousAPI", function($q) {
  this.get = get;

  function get(funcName, url) {
    var dataDefer = $q.defer();

    window[funcName] = function(x) {
      dataDefer.resolve(x);
    }

    var tag = document.createElement("script");
    tag.src = url;

    document.getElementsByTagName("head")[0].appendChild(tag);

    return dataDefer.promise;
  }
})

استخدام على مسؤوليتك الخاصة.

التجريبي

angular.module("app",[])
.service("dangerousAPI", function($q) {
  this.get = get;
  
  function get(funcName, url) {
    var dataDefer = $q.defer();
  
    window[funcName] = function(x) {
      dataDefer.resolve(x);
    }

    var tag = document.createElement("script");
    tag.src = url;

    document.getElementsByTagName("head")[0].appendChild(tag);
    
    return dataDefer.promise;
  }
})

.run(function($rootScope, dangerousAPI) {
    var url = "https://careers.icims.com/jobs-api/";
    dangerousAPI.get('jobs',url).then(function(data) {
      $rootScope.data = data;
    })
})
<script src="//unpkg.com/angular/angular.js"></script>
  <body ng-app="app">
    <h1>Dangerous API DEMO</h1>
    <pre>{{data | json}}</pre>
  </body>

الزاوي 1.6 - JSONP يلقي استثناء على الرغم من الاستجابة مع الحالة: 200 موافق لعنوان URL

ايم محاولة الاستيلاء على بعض البيانات من نقطة النهاية JSONP. يبدو أن البيانات يتم إرجاعها في الاستجابة ولكن الزاوي يلقي خطأً.

var url = "https://careers.icims.com/jobs-api/"

var trustedUrl = $sce.trustAsResourceUrl(url);

$http.jsonp(trustedUrl, {jsonpCallbackParam: 'jobs'}).then(function(res){

    console.log(res); // this is never executed :.(

});

أتلقى الخطأ التالي: Uncaught ReferenceError: jobs is not defined at jobs-api?jobs=angular.callbacks._0:1 حيث تشير jobs إلى بادئة JSONP الخاصة بي

بعد الرد بإرجاع البرنامج النصي JSONP:

لماذا يتم طرح هذا الاستثناء وكيف يمكن إزالته؟ أنا على الزاوي 1.6.0





jsonp