Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery($.ajax)和Angular($http)中的请求不起作用_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript jQuery($.ajax)和Angular($http)中的请求不起作用

Javascript jQuery($.ajax)和Angular($http)中的请求不起作用,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我试图以最快、最直接的方式从API中获取一些数据。使用邮递员,我可以很容易地在url()中输入GET并获取: 但是,当我尝试使用jQuery或Angular执行GET时,我不能。下面是我收到的两个电话和错误 使用jQuery $.ajax({ type: 'GET', dataType: 'JSONP', url: 'http://www.wsfebracis.com.br/Json/ListarGrupos/', success: function(data) { co

我试图以最快、最直接的方式从API中获取一些数据。使用邮递员,我可以很容易地在url()中输入GET并获取:

但是,当我尝试使用jQuery或Angular执行GET时,我不能。下面是我收到的两个电话和错误

  • 使用jQuery

    $.ajax({
      type: 'GET',
      dataType: 'JSONP',
      url: 'http://www.wsfebracis.com.br/Json/ListarGrupos/',
      success: function(data) {
        console.log(data);
      },
      error: function(e) {
        console.log(e);
      }
    }).done(function( data ) {
      console.log("done ", data);
    })
    .fail( function(xhr, textStatus, errorThrown) {
        console.log('erro');
        console.log(xhr.responseText);
        console.log(textStatus);
        console.log(errorThrown);
    });
    
    • 对象{readyState:4,状态:200,状态文本:“success”}
    • 埃罗
    • 未定义
    • 解析器错误
    • 错误:未调用JQuery11108493785087484866_1448911631891(…)
  • 使用角度

    $http.jsonp('http://www.wsfebracis.com.br/Json/ListarGrupos/ListarGrupos')
    .success(function(data, status, headers, config) {
      $log.error(data);
      $log.error(status);
      $log.error(headers);
      $log.error(config);
    })
    .error(function(data, status, headers, config) {
      $log.log(data);
      $log.log(status);
      $log.log(headers);
      $log.log(config);
    });
    
    • 未定义
    • (d) {b | |(b=ad(a));返回d?(d=b[F(d)],void 0==d&&(d=null),d):b}
    • 对象{方法:“JSONP”,transformRequest:Array,transformResponse:Array,url: “”,标题:对象}
    Obs.:我可以看到返回,但它显示为错误,因此我无法操作数据。看!


    重要!我没有访问API的权限,因此阻止某些建议的方法(jQuery或Angular)将是受欢迎的解决方案。

    在Angular应用程序中使用$http、$q和promise方法

    下面可以找到一个例子

    angular
            .module('yourApp')
            .factory('dataService', dataService);
    
        dataService.$injector = ['$http', '$q'];function dataSvc($http, $q) {
         var service = {
         getListGroupsSvc :getListGroupsSvc};return service;
    
    
    
      function getData(url) {
            var deferred = $q.defer();
    
            $http.get(url)
                .then(function (result) {
                    deferred.resolve(result.data);
                },
                    function (result) {
                        deferred.reject(result);
                    });
    
            return deferred.promise;
        }
    
    您可以调用上述函数

      function getListGroupsSvc(){
    
       var url = 'http://www.wsfebracis.com.br/Json/ListarGrupos/ListarGrupos';
    
       return getData(url);
       }
    

    通过在API中启用CORS,问题已经解决。

    您返回的是JSON,而不是JSONP,这是不同的。因此,呃,为什么您在网页中发送JSONP请求,在邮递员中发送JSON请求?这是两种截然不同的数据类型。一个导致XHR请求需要json,另一个导致脚本请求需要javascript。我尝试使用$http.get,但API返回以下错误:“XMLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”头。因此不允许访问Origin”“。”因此,我使用的是JSONP。如果跨源服务不支持JSONP,您就不能使用JSONP,原因与如果跨源服务不支持CORS,您就不能使用XHR相同。如果将数据类型更改为JSON而不是JSONP,会发生什么?
      function getListGroupsSvc(){
    
       var url = 'http://www.wsfebracis.com.br/Json/ListarGrupos/ListarGrupos';
    
       return getData(url);
       }