[英]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.