我在asp.net中制作了一个网络api来发送电子邮件并与邮递员进行了测试,那里的请求工作正常,但是当我尝试使用AJAX调用进行调用时,它给我一个'405(不允许使用方法)错误”和“对预检请求的响应未通过访问控制检查:所请求的资源上不存在” Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://localhost:11495”。
我不知道出了什么问题,我已经尝试过通过chrome扩展启用和禁用跨域资源共享,但仍然无法正常工作。我究竟做错了什么?
我正在从另一个项目中调用api,但目前两者都在localhost上。
感谢您的帮助,我已经被困了几个小时。
这是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;
...
答案 0 :(得分:0)
由于Mohsin的评论,我发现我没有在webapi中启用CORS。