繁体   English   中英

角度$ http.get /重新调用失败

[英]angular $http.get / restangular call fails

我有一个离子应用程序(使用angular js)。 我正在尝试使用restangular api(也曾尝试使用$ http.get)来对我的localserver(节点Express)进行调用。

我将基本网址设置为

RestangularProvider.setBaseUrl('https://localhost:3000');

我定义了一个拦截器来添加自定义标头:

interceptors.serialNumber = function (element, operation, what, url, headers, query) {
  return {
    headers: angular.extend({
      'x-serialnumber': deviceStore.serialNumber
    }, headers)
  };
};

我尝试了以下矩形调用:

Restangular.one('Admin').get()
     .then(function (data) {
        console.log(data);
       });
     }, function (error) {
       console.log(error);
     });

和以下使用$ http调用:

$http({
        method: 'GET',
        url: 'https://localhost:3000/Admin',
        headers: {
          'Content-Type': 'application/json',
          'x-serialnumber': '000000000'   
        }
      }).then(function (data) {
        console.log(data);
      }, function (error) {
        console.log(error);
      });

我总是得到错误情况,其中data = null | 状态= -1 | statusText =“”

我在服务器端看不到任何请求。 立即处理失败案例。

如果删除自定义标头,则会在服务器端看到请求并获得良好的响应(即200)。

在服务器端,我正在使用cors模块:var app = express(); app.use(cors());

好吧,我需要做的是以下几点:

$http({
  method: 'GET',
  url: 'https://example.com/DUMMY'
}).then(function successCallback(response) {
  $http({
    method: 'GET',
    url: 'https://example.com',
    headers: {
      'x-serialnumber': deviceStore.serialNumber
    }
  }).then(function successCallback(response) {
    console.log('SUCCESS');
  }, function errorCallback(response) {
    console.log('FAILURE');
  });
}, function errorCallback(response) {
  console.log('FAILURE');
});

从本质上讲,我需要发送一个没有自定义标头的“ 初步 ” GET请求。 GET请求可能是对我的节点快速服务器上的任何对象的请求。 在此“ 初步 ” GET请求之后,我可以在其中带有自定义标头的情况下执行GET请求。

特别是在服务器端,我看到以下内容:

GET /DUMMY 200 10ms - 2b
OPTIONS / 204 1ms
GET / 200 13ms - 1.03kb

如果不执行此“ 初步 ”获取请求,我的Ionic App中的OPTIONS请求将中止-状态码= -1-通常表示该请求已中止,并且永远不会离开Ionic App一方。

我仍然不明白为什么我需要这个“ 初步 ” GET请求,但这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM