Angular 2请求标头字段预操作响应中的Access-Control-Allow-Headers不允许授权
我正在为我的服务器应用程序使用codeigniter REST API。和客户端Angular2一样,在我的REST API中,我给出了基本的身份验证。我已喜欢Angular 2请求标头字段预操作响应中的Access-Control-Allow-Headers不允许授权
$config['rest_auth'] = 'basic';
而且
$config['rest_valid_logins'] = ['uname' => 'pwd'];
,也为CORS检查我用下面的代码,
$config['check_cors'] = TRUE;
$config['allowed_cors_headers'] = [
'Origin',
'X-Requested-With',
'Content-Type',
'Accept',
'Access-Control-Request-Method'
];
$config['allowed_cors_methods'] = [
'GET',
'POST',
'OPTIONS',
'PUT',
'PATCH',
'DELETE'
];
$config['allow_any_cors_domain'] = TRUE;
而且我也试图在我的休息控制器明确地尝试,
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Content-Range, Content-Disposition, Content-Description');
我在下面使用代码在角,
当我与邮递员检查它运作良好,没有任何问题。当检查与角度误差就这样产生,
XMLHttpRequest cannot load http://localhost:97/sencogold/index.php/Adminaccount_api/login_adminuser. Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.
如果我假休息权威性和删除授权头是没有工作以及检查API的用户名和密码
$config['rest_auth'] = FALSE;
,并在角
this.headers = new Headers();
//this.headers.append('Authorization', 'Basic ' + btoa('lmxretail:[email protected]'));
this.headers.append('Content-Type', 'application/x-www-form-urlencoded');
请帮助任何人申请认证我的api。
为了使您的预检请求成功,服务器控制器必须接受“授权”标头为有效。你可以通过与其他允许的头值一起加入“授权”键:
Access-Control-Allow-Headers: Authorization, Content-Type, Content-Range, Content-Disposition, Content-Description
可能有重复也试过这样,还是一样的问题。 this.headers.append('Access-Control-Allow-Headers','Authorization,Content-Type,Content-Range,Content-Disposition,Content-Description'); ('Access-Control-Allow-Methods','GET,POST,OPTIONS'); this.headers.append('Access-Control-Allow-Origin','*'); –
你在正确的地方做这个吗?我的意思是你应该在服务器配置上这样做。您的代码看起来像您正在根据客户端请求进行操作。 – YuVi
我在我的其余控制器头文件中添加了“Access-Control-Allow-Headers:授权,内容类型,内容范围,内容处理,内容描述”; header('Content-type:application/json'); header(“Access-Control-Allow-Origin:*”); header(“Access-Control-Allow-Methods:GET”); header(“Access-Control-Allow-Methods:GET,OPTIONS”); –
添加Authorization
到CORS检查:
$config['allowed_cors_headers'] = [
'Authorization',
'Origin',
'X-Requested-With',
'Content-Type',
'Accept',
'Access-Control-Request-Method'
];
非常感谢,它帮助了我。在我在allowed_cors_headers中添加授权后,它运行良好 –
检查服务器配置。头允许或不允许。 –
将“Access-Control-Allow-origin”插件添加到chrome中以解决此问题,但它不是永久性解决方案。 –
[如何创建跨域请求(Angular 2)?](https://stackoverflow.com/questions/34790051/how-to-create-cross-domain-request-angular-2) – echonax