繁体   English   中英

c# WebAPI API Issue - Swagger - Angular Axios

[英]c# WebAPI API Issue - Swagger - Angular Axios

我有一个问题,我不知道该怎么做,问题是在我的 C# WebApi 应用程序上启用了 swagger。

我有一些 api,但这里是其中的一个示例 1。

[HttpPost]
[Route("/api/user/register")]
public UserSession Register(string email, string password, string confirm_password)
{
    if (password != confirm_password)
    {
        return new UserSession()
        {
            Success = false,
            Message = "Error Passwords don't match",
            SessionKey = "",
        };
    }
    // success code here
}             

这里是 angular API。

import axios from 'axios';

export class API {
    private static base_api:string = "http://localhost:51019/";
    static register(email:string, password:any, confirm_password:any) {
        let url = this.base_api + "api/user/register";
        let data = {
            email: email,
            password: password,
           confirm_password: confirm_password,
        };    
        const headers = {
            'Content-Type': 'application/json'
        };
        let result = axios.post(url, data, {headers}).then(x=>{return x}).catch(x=>{return false;});
        console.log(result);
    }
}

即使我提供了 email 和/或密码,就像 API 没有收到数据一样?

为了解决cor问题,我将其添加到 api controller

[HttpOptions]
[Route("/api/user/register")]
[Route("/api/user/login")]
[Route("/api/user/logout")]
public HttpResponseMessage Options()
{
    var response = new HttpResponseMessage();
    response.StatusCode = HttpStatusCode.OK;
    return response;
}

如果我通过(http://localhost:51019/swagger/index.html)通过 swagger ui 访问 api

然后当我通过 UI 执行 api 时,它可以正常工作。

TIA

通常,您会创建一个 model 并将其设置为主体:

public sealed class RegisterModel
{
    [JsonPropertyName("email")]
    public string Email { get; set; }

    [JsonPropertyName("password")]
    public string Password { get; set; }

    [JsonPropertyName("confirm_password")]
    public string ConfirmPassword { get; set; }
}

[HttpPost, Route("/api/user/register")]
public UserSession Register([FromBody] RegisterModel register)
{
    // ...
}

这将使它在所有情况下都能正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM