无法将我的表单从 angular 6 应用程序发布到 asp.net web api

大坏狼

我正在尝试将一些表单数据从我的 angular 6 应用程序发布到我的 web api。但是,我总是收到错误消息“OPTIONS http://localhost:52994/api/Mail/SendMail 405 (Method Not Allowed)”和“Access to XMLHttpRequest at ' http://localhost:52994/api/Mail/SendMail ' from origin ' http://localhost:4200 ' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。为了清楚起见,我正在编写所有必要的代码,但如果不清楚,请随时询问更多。

角度法:

sendMail(mail:Mail) {
      console.log(mail); // prints desired data
      this.http.post('http://localhost:52994/api/Mail/SendMail',mail)
      .subscribe(
        data => { console.log ("POST was successful",data)},
        error => { console.log("Error",error)}
      );
   }

其中邮件模型如下:

export class Mail {
Name: string;
Email: string;
Message: string;
To: string;
From: string;
}

这是目标 web api 方法:

[HttpPost]
public HttpResponseMessage SendMail([FromBody]MailModel mail)
{
     try
        {
            using (MailMessage mm = new MailMessage(mail.From, mail.To))
            {
                mm.Subject = "ContactUs";
                string body = "You've got a message as below :";
                body += "<br /><br />Name : " + mail.Name;
                body += "<br /><br />Email : " + mail.Email;
                body += "<br /><br />Message : " + mail.Message;
                mm.Body = body;
                mm.IsBodyHtml = true;
                ....
                smtp.Send(mm);
                return Request.CreateResponse(HttpStatusCode.OK, mail);
            }
        }
        catch(Exception e)
        {
            return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
        }
    }

模型类:

   public class MailModel
{
    public string Name { get; set; }
    public string Email { get; set; }
    public string Message { get; set; }
    public string To { get; set; }
    public string From { get; set; }
}

我在 web.config 文件中设置了所有必需的标题,如下所示:

 <httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
    <add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTION" />
  </customHeaders>
</httpProtocol>
大坏狼

通过安装 Cors 并启用 Cors 来实现这一点,如下所示:

  // Enable CORS for the Angular App
  var cors = new EnableCorsAttribute("http://localhost:4200", "*", "*");
  config.EnableCors(cors);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不使用 Visual Studio Code 中的 git 的情况下将我的 ASP.Net Core Angular Web 应用程序发布到 Azure

来自分类Dev

将文件从ASP.NET MVC 4.6应用程序发布到ASP.NET Core Web API

来自分类Dev

将我的asp.net mvc Web应用程序发布到IIS之后,无法在我的Content文件夹中上传文件

来自分类Dev

将我的asp.net mvc Web应用程序发布到IIS之后,无法在我的Content文件夹中上传文件

来自分类Dev

无法将值从 angular 服务发布到 asp.net core angular 中的 Web API

来自分类Dev

我未注册服务的Web API ASP.NET MVC6应用程序上的异常

来自分类Dev

ASP .Net Core Web 应用程序调用 Web API

来自分类Dev

将 ASP.NET MVC Core 应用程序的 [部分] 发布到 Web 主机

来自分类Dev

使用发布管道将 Asp.net 核心 Web 应用程序部署到 azure vm

来自分类Dev

将对象从angular 2应用程序发布到Web Api应用程序(获取不受支持的媒体类型)

来自分类Dev

无法在MVC 6 Web Api应用程序中发布任何数据

来自分类Dev

无法在MVC 6 Web Api应用程序中发布任何数据

来自分类Dev

通过现有的ASP.NET Web应用程序将ASP.NET Web应用程序发布到IIS

来自分类Dev

我正在开发 asp .net Web API 以在我的 Android 应用程序中使用它,

来自分类Dev

纯asp.net Web API应用程序

来自分类Dev

开发ASP.NET WEB API服务应用程序

来自分类Dev

Angular 7 应用程序一旦发布就无法访问 Web API

来自分类Dev

无法从 asp.net core api 获取数据到 angular 6

来自分类Dev

使用HTML客户端应用程序到ASP.Net Web API(MVC)进行表单身份验证

来自分类Dev

如何使用Visual Studio将ASP.NET Web应用程序(.Net Framework)发布到FTP服务器?

来自分类Dev

从 Angular 2 前端到 Asp.Net Core web api 的 JSON 数据发布 - 丢失值

来自分类Dev

我发布没有任何问题后,Azure上的Web应用程序没有显示我的asp.net核心Web应用程序

来自分类Dev

无法将ASP.NET Core 2.1 Angular应用程序部署到Azure

来自分类Dev

使用asp.net mvc 中的web api 从服务Angular 6 调用REST 的POST 方法

来自分类Dev

访问模型状态错误 - Asp.Net web api 身份 - Angular 6 - Http Post 请求

来自分类Dev

使用.NET Core Web API作为ASP.NET Web窗体应用程序的子路由

来自分类Dev

无法在Visual Studio 2015(ASP.NET 5 Web应用程序)中打开发布对话框

来自分类Dev

在AngularJS + ASP.NET Web API应用程序中将通知/消息集成到客户端

来自分类Dev

如何允许从本地主机和容器到ASP.NET Core Web API应用程序的HTTPS连接?

Related 相关文章

  1. 1

    如何在不使用 Visual Studio Code 中的 git 的情况下将我的 ASP.Net Core Angular Web 应用程序发布到 Azure

  2. 2

    将文件从ASP.NET MVC 4.6应用程序发布到ASP.NET Core Web API

  3. 3

    将我的asp.net mvc Web应用程序发布到IIS之后,无法在我的Content文件夹中上传文件

  4. 4

    将我的asp.net mvc Web应用程序发布到IIS之后,无法在我的Content文件夹中上传文件

  5. 5

    无法将值从 angular 服务发布到 asp.net core angular 中的 Web API

  6. 6

    我未注册服务的Web API ASP.NET MVC6应用程序上的异常

  7. 7

    ASP .Net Core Web 应用程序调用 Web API

  8. 8

    将 ASP.NET MVC Core 应用程序的 [部分] 发布到 Web 主机

  9. 9

    使用发布管道将 Asp.net 核心 Web 应用程序部署到 azure vm

  10. 10

    将对象从angular 2应用程序发布到Web Api应用程序(获取不受支持的媒体类型)

  11. 11

    无法在MVC 6 Web Api应用程序中发布任何数据

  12. 12

    无法在MVC 6 Web Api应用程序中发布任何数据

  13. 13

    通过现有的ASP.NET Web应用程序将ASP.NET Web应用程序发布到IIS

  14. 14

    我正在开发 asp .net Web API 以在我的 Android 应用程序中使用它,

  15. 15

    纯asp.net Web API应用程序

  16. 16

    开发ASP.NET WEB API服务应用程序

  17. 17

    Angular 7 应用程序一旦发布就无法访问 Web API

  18. 18

    无法从 asp.net core api 获取数据到 angular 6

  19. 19

    使用HTML客户端应用程序到ASP.Net Web API(MVC)进行表单身份验证

  20. 20

    如何使用Visual Studio将ASP.NET Web应用程序(.Net Framework)发布到FTP服务器?

  21. 21

    从 Angular 2 前端到 Asp.Net Core web api 的 JSON 数据发布 - 丢失值

  22. 22

    我发布没有任何问题后,Azure上的Web应用程序没有显示我的asp.net核心Web应用程序

  23. 23

    无法将ASP.NET Core 2.1 Angular应用程序部署到Azure

  24. 24

    使用asp.net mvc 中的web api 从服务Angular 6 调用REST 的POST 方法

  25. 25

    访问模型状态错误 - Asp.Net web api 身份 - Angular 6 - Http Post 请求

  26. 26

    使用.NET Core Web API作为ASP.NET Web窗体应用程序的子路由

  27. 27

    无法在Visual Studio 2015(ASP.NET 5 Web应用程序)中打开发布对话框

  28. 28

    在AngularJS + ASP.NET Web API应用程序中将通知/消息集成到客户端

  29. 29

    如何允许从本地主机和容器到ASP.NET Core Web API应用程序的HTTPS连接?

热门标签

归档