【问题标题】:angularJS post CORSangularJS发布CORS
【发布时间】:2021-08-11 10:24:40
【问题描述】:

我是AngularJS 的新手,还在学习。我在下面有这个 angularJS 代码来检查我的 API 中的登录凭据。但是在登录时(单击我的登录按钮),它并没有在我的 API 代码中达到我的断点。 API 和登录代码都在我的本地机器上运行。我附上了 CORS 错误的图片。

AngularJS

data = {用户名:'user',密码:'pass'}

app.service('services', function ($http, $window) {
services = {};
//Set the link once in upon open of project

localStorage.setItem('link', 'http://localhost:63763/');

var surl = localStorage.getItem('link');

services.signin = function (data) {
    var result = $http({
        method: 'POST',
        url: surl + 'api/auth/signin', data: data,
    }).then(function (response) {
        return response;
    }, function (err) {
        return err;
    });
    return result;
};
   return services;
});

API

    [HttpPost]
    [Route("signin")]
    public IHttpActionResult Authenticate([FromBody] UsersSigninDTO dto)
    {
      //Codes            
    }

类 DTO

public class UsersSigninDTO
{
    [Required(ErrorMessage = "username is required.")]
    public string username { get; set; }
    [Required(ErrorMessage = "password is required.")]
    public string password { get; set; }
}

[Error Picture]

【问题讨论】:

    标签: angularjs cors


    【解决方案1】:

    我解决了。在 API 代码方面,我在 WebApiConfig.cs 下添加了这些代码

    config.MapHttpAttributeRoutes();
    EnableCorsAttribute CorsAttribute = new EnableCorsAttribute("*", "*", "*");
    config.EnableCors(CorsAttribute);
    

    【讨论】:

      【解决方案2】:

      您在调用 localhost 时使用了 2 个不同的端口,从而触发了 CORS。

      App 似乎是从 localhost:51216 加载的,而对 API 的请求似乎是 localhost:63763

      如果你从 localhost:63763 加载你的应用呢?

      也许您同时运行 2 个 webpack 实例?检查你的配置。

      【讨论】:

        猜你喜欢
        • 2015-11-01
        • 2014-11-09
        • 2015-09-02
        • 2017-08-15
        • 2013-01-24
        • 2022-01-26
        • 1970-01-01
        • 2017-05-20
        相关资源
        最近更新 更多