【问题标题】:Can't call asp.net web api using ajax, getting 405 and other errors无法使用ajax调用asp.net web api,出现405等错误
【发布时间】:2019-03-20 04:04:04
【问题描述】:

我在 asp.net 中创建了一个 web api 来发送电子邮件并使用邮递员对其进行了测试,那里的请求工作正常,但是当我尝试使用 AJAX 调用它时,它给了我一个 '405(不允许的方法)错误'和'对预检请求的响应未通过访问控制检查:请求的资源上不存在'Access-Control-Allow-Origin'标头。因此,Origin 'http://localhost:11495' 不允许访问。'

我不知道出了什么问题,我已经尝试使用 chrome 扩展启用和禁用跨域资源共享,但仍然无法正常工作。我究竟做错了什么?

我正在从另一个项目调用 api,但目前两者都在本地主机上。

感谢您的帮助,我已经被困了好几个小时了。

这是 AJAX 调用:

var emailObj = {};
    emailObj.Subject = timelineObj.Subject;
    emailObj.Body = timelineObj.Body;
    emailObj.SendTo = ["test@email.com"]; 
    emailObj.CCTo = [];

    $.ajax({
        type: "POST",
        async: false,
        url: "http://localhost:16627/sendemail",
        data: JSON.stringify({ emailParams: emailObj }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            $.unblockUI();
            console.log(data.d);

        },
        error: function (data) {
            $.unblockUI();
            console.log(data.d);
            alert("An error has occurred during processing your request. [ADD EMAIL]");
        }
    });

这里是api方法:

        [Route("sendemail")]
        [HttpPost]
        public string[] SendEmail(EmailParams emailParams)
        {
            using (GoalEntities db = new GoalEntities()) {

                Goal_Emails ge = new Goal_Emails();
                try
                {
                    BEMail mail = new BEMail();
                    string from = ge.SentFrom = GetParameterByName("EmailUsername").Value;
...

Screenshot of the postman test working fine

【问题讨论】:

标签: jquery asp.net ajax asp.net-web-api http-post


【解决方案1】:

感谢 Mohsin 的 cmets,我发现我的 webapi 中没有启用 CORS。

按照本教程 https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api 进行操作,一切正常。

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 2013-04-24
    • 1970-01-01
    • 2017-11-03
    相关资源
    最近更新 更多