遇到CORS问题,尝试使用GET
令牌执行Authorization
请求,但OPTIONS有问题。想知道在向其他服务器请求GET
时如何不发送OPTIONS?
$http({
url: request_data.url,
type: request_data.method,
withCredentials: true,
headers: {
'Authorization': localStorage.getItem('Auth'),
'Content-Type': 'application/json; charset=utf-8'
},
crossDomain: true
}).then(function(response) {
//process your data here
vm.prodData = response.data;
console.log(response.data);
});
我无法发送请求,因为CORS问题,可能是由于标题Authorization
部分。
答案 0 :(得分:0)
你不能。
Authorization
标题不是"安全",因此您无法在未经许可的情况下将其包含在跨源请求中。
preflight OPTIONS request可以请求许可。
您正在做一些不寻常的潜在风险,因此您必须更改发出请求的服务器,以便它告诉浏览器可以发出请求。
答案 1 :(得分:-1)
据我所知,当您尝试CORS请求时,它将始终首先发送OPTIONS请求以检查您是否允许发出请求,您必须在服务器端处理该问题,例如在php中我执行以下操作:
if($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
header( "HTTP/1.1 200 OK" );
exit();
}
这样,如果客户端发送OPTIONS请求,它将自动发送200 OK响应,然后它将等待正确的请求(GET,POST等)