【问题标题】:Http Post to WebApi Angular 5Http 发布到 WebApi Angular 5
【发布时间】:2018-09-10 13:39:25
【问题描述】:

从 angular 5 (localhost:4200) 到我的 .NET Core WebApi (localhost:55007) 的请求存在很大问题。我想我什么都试过了,都输了..

情况看起来: login.service.ts

import { Injectable, Inject } from '@angular/core';
import {HttpModule, Http, URLSearchParams, Headers, RequestOptions} from 
'@angular/http';

@Injectable()
export class LoginService {
  constructor( public http: Http) {
}

login(email:string, password:string){
  this.http.post('http://localhost:55007/Login/Login',         
{email:"fooad@ds.pl",password:"loqweqko"}).subscribe(
    res => { 
      console.log(res);
    },
    (err) => {
      console.log(err);
    }
 );
 }
}

webApi 方法:

[Route("[controller]/[action]")]
public class LoginController : Controller
{
    [HttpPost]
    public object Login([FromBody] LoginDto model)
    {
        //something..
    }
}

LoginDto 在哪里:

public class LoginDto
{
    [Required]
    public string Email { get; set; }
    [Required]
    public string Password { get; set; }
}

请告诉我我做错了什么。我也尝试使用 json.stringify 作为请求中的对象。什么都没有发生.. 我总是得到 404.. (使用邮递员一切正常,GET 方法也有效)。

---------------编辑------- --------

好的,我找到了解决方案 - 问题出在 CORS,我做了同样的事情: How to enable CORS in ASP.net Core WebAPI

对我来说有效。谢谢:)

【问题讨论】:

  • webapi 请求对请求对象中的预期属性是否区分大小写?您是否尝试在 Json 请求中使用大写的电子邮件和密码?
  • @HugoNoro 没关系,我尝试过使用邮递员,这很有效。
  • OK 只是排除选项 :)。不是 100% 确定 web api 的所有怪癖。
  • 这可能是 CORS 问题吗?由于您在同一个本地主机中运行,浏览器最初将执行一个 OPTIONS 请求,称为预检,然后将尝试实际请求。您不会在邮递员中遇到该问题,因为您没有执行跨源请求。服务器是否配置为接受 CORS?
  • 您是否在浏览器开发者控制台中看到任何 CORS 错误?

标签: angular asp.net-web-api asp.net-core-webapi


【解决方案1】:

Cors 的简单启用以允许任何来源/方法等(个人项目): 1. nuget:Microsoft.AspNetCore.Cors

  1. 在 configure 方法中,在 useMvc 之前添加: app.UseCors(o =>o.AllowAnyOrigin().AllowAnyMethod().AllowAnyMethod().AllowCredentials());

  2. 在 ConfigureServices 中,在 AddMvc 之前,添加以下内容: services.AddCors();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2018-10-02
    • 2013-05-13
    • 2019-01-04
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多