【发布时间】: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;
...
【问题讨论】:
-
您是否在 ASP.NET WebAPI 中启用了 CORS? docs.microsoft.com/en-us/aspnet/web-api/overview/security/…
标签: jquery asp.net ajax asp.net-web-api http-post