//individual logins
$rootScope.setting.instances.forEach(function(ins) {
var header = {
"Accept": "application/json",
"Authorization": "Basic " + btoa( ins.uname + ':' + ins.pword ),
"Access-Control-Allow-Origin" : "*",
"Access-Control-Allow-Methods" : "GET, POST, DELETE, PUT, JSONP"
};
$http({ method : 'post', url : ins.url, headers: header })
.success( function( data )
{
console.log( ins.name +" login success" );
$("#fail" + ins.id ).hide();
$("#succ" + ins.id ).show();
//logins : a global variable declared in app.js
logins.push('{"ins" : '+ ins.id + ',"isAvailable" : "true"}');
checkFinished();
})
.error( function( data)
{
console.log( ins.name +" login failed" );
$("#fail" + ins.id ).show();
$("#succ" + ins.id ).hide();
//logins : a global variable declared in app.js
logins.push('{"ins" : '+ ins.id + ',"isAvailable" : "false"}');
checkFinished();
});
});
}
答案 0 :(得分:0)
如果在跨源请求中指定了任何自定义标头,则CORS规范要求浏览器使用OPTIONS请求预检请求。并且,当它执行OPTIONS预检时,它不包括您的自定义标头,因为OPTIONS请求的一部分是找出允许在请求上发送的自定义标头。因此,如果服务器希望从浏览器开始工作,则不应在OPTIONS请求中要求自定义标头。
因此,如果您不希望它使用OPTIONS请求进行预检,那么您必须不在请求中使用自定义标头。