我曾开发了一个 PhoneGap 应用程序,现在正在将其转换为移动网站。除了一个小故障外,一切都运行顺畅。我通过 POST 请求使用某个第三方 API,在应用程序中正常工作,但在移动网站版本中却失败了。
经过仔细查看,似乎 AngularJS(我猜测是浏览器)首先发送了一个 OPTIONS 请求。今天我对 CORS 有了很多了解,但似乎无法完全禁用它。我没有访问该 API 的权限(因此在该方面进行更改是不可能的),但他们已经将我正在使用的域添加到了他们的 Access-Control-Allow-Origin 标头。
这就是我所说的代码:
var request = {
language: 'fr',
barcodes: [
{
barcode: 'somebarcode',
description: 'Description goes here'
}
]
};
}
var config = {
headers: {
'Cache-Control': 'no-cache',
'Content-Type': 'application/json'
}
};
$http.post('http://somedomain.be/trackinginfo', request, config).success(function(data, status) {
callback(undefined, data);
}).error(function(data, status) {
var err = new Error('Error message');
err.status = status;
callback(err);
});
我该如何防止浏览器(或AngularJS)发送那个OPTIONS请求,直接跳过实际的POST请求?我正在使用 AngularJS 1.2.0。