最佳答案
我开发了一个 PhoneGap 应用程序,现在正在转换成一个移动网站。除了一个小故障之外,一切都很顺利。我通过 POST 请求使用某个第三方 API,这在应用程序中可以很好地工作,但在移动网站版本中失败。
仔细观察之后,AngularJS (我猜测实际上是浏览器)似乎首先发送了一个选项请求。今天我学到了很多关于 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)发送 OPTION 请求,并直接跳到实际的 POST 请求?我正在使用 AngularJS1.2.0。
先谢谢你。