angularJS发布CORS

Posted

技术标签:

【中文标题】angularJS发布CORS【英文标题】:angularJS post 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]

【问题讨论】:

【参考方案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 实例?检查你的配置。

【讨论】:

以上是关于angularJS发布CORS的主要内容,如果未能解决你的问题,请参考以下文章

angularJS发布CORS

AngularJS 跨域发布

AngularJS 2.0 稳定版真的发布了!

Angularjs - 未发布表单发布数据?

Jquery 发布两个 Array AngularJS

AngularJS、REST、C# 服务、405 - 不允许发布方法