Angular-PHP CORS 请求被阻止
Posted
技术标签:
【中文标题】Angular-PHP CORS 请求被阻止【英文标题】:Angular-PHP CORS request blocked 【发布时间】:2022-01-24 02:23:07 【问题描述】:我正在尝试在填写表格时通过 php 服务从我的 Angular 项目发送一封电子邮件。
当我尝试在控制台中发送请求时 我收到以下错误“从源 'https://website' 访问 'https://website/assets/php/mail.php?con_name=user&con_email=mail&con_message=test&con_subject=Hello%20World' 的 XMLHttpRequest 已被阻止CORS 政策:请求的资源上不存在“Access-Control-Allow-Origin”标头。
正如你们中的许多人在 PHP 文件中所建议的那样,我已经不成功地包含了“header('Access-Control-Allow-Origin: *');”和“header('Access-Control-Allow-Methods: POST, GET, OPTIONS');”
角度调用是:
sendMail()
this.mailValidator()
if(this.validate() && this.mailValidator() )
this.http.get("https://website.com/assets/php/mail.php?con_name="+this.name+"&con_email="+this.email+"&con_message="+this.message+"&con_subject="+this.object).subscribe((val) =>
)
this.dialogRef.close();
PHP代码是
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
echo("Test")
?>
【问题讨论】:
您使用的是哪个网络服务器,您知道如何配置它吗? 网站托管在 Aruba (aruba.it/home.aspx) 【参考方案1】:您可以尝试添加 allow Access-Control-Allow-Headers: Origin 看看是否对您有帮助?
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
【讨论】:
我总是遇到同样的错误 你是从你的本地主机调用 api 吗? 不,我已经构建了项目并在托管服务上发布了它,目前我只是用我可以在网络上找到的每个示例更改 php 文件 您是否重新启动/硬刷新您的服务器(apache 服务器)以便进行更改。如果这不起作用,那么您可以尝试调整创建 .htaccess 并将以下行添加到它 Header set Access-Control-Allow-Origin * ,然后也请刷新您的服务器 不,我无法重新启动 Apache 服务器,因为我正在使用托管服务 (Aruba)。相反, .htaccess 文件当前不存在于 Angular 项目中。我提供它的创建并插入您发送给我的命令?如果我创建它,是否可以将它放在 angular.json 所在的同一路径中?以上是关于Angular-PHP CORS 请求被阻止的主要内容,如果未能解决你的问题,请参考以下文章
http 请求被 Flutter Web 的 Cors 策略阻止