电子邮件 AJAX POST 到网站 api
email AJAX POST to web api
我有客户端功能,例如:
var sendEmail = function (msgData) {
jQuery.support.cors = true;
var test = msgData;
$.ajax({
url : "Api/EmailData/Send/{}",
type : "POST",
data : JSON.stringify(msgData),
contentType : "application/json; charset=utf-8",
success : function (data) {
},
error: function (error) {
}
});
};
Web 控制器方法如下:
[Route("Api/EmailData/Send/{clientEmail}"), HttpPost]
public HttpResponseMessage ContactUs(string clientEmail)
{
EmailBody emailbody = JsonConvert.DeserializeObject<EmailBody> (clientEmail);
var result = MyDataRepository.ContactUs(emailbody);
return Request.CreateResponse(result == false ? HttpStatusCode.ExpectationFailed : HttpStatusCode.OK);
}
我的数据与我检查过的预期电子邮件 class 相符。但是我仍然收到 404 not found。如果我在 FIDDLER 中 运行 我得到的响应状态为 204 No Content.I 也包含在我的 Fiddler header:
Content-type:application/json
我怎样才能让它在我的 JS 客户端和提琴手上工作。任何指针表示赞赏。请注意,我在 IIS 的数据站点上为我的客户包含了 "Allow-Access-Control-Origin"。我还尝试按照 esle 某处的建议从我的 JS 客户端中删除 JSON.stringify。不知道我错过了什么。任何帮助。谢谢
您的格式可能不正确 url。如果我的怀疑是正确的,url 末尾的“/{}”可能是您问题的根源。
这里的 {} 很好,因为您在 api 控制器端
上声明了它
[Route("api/stuff/data/{id:int}")]
public Data GetDataById(int id)
{
// your code here
return data;
}
但是在你的 ajax 调用中只传递 url 而没有 curly 大括号
$.ajax({
type: 'POST',
url: "Api/EmailData/Send",
data: JSON.stringify(actionData),
traditional: true,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) { },
error: function (e) { }
});
我有客户端功能,例如:
var sendEmail = function (msgData) {
jQuery.support.cors = true;
var test = msgData;
$.ajax({
url : "Api/EmailData/Send/{}",
type : "POST",
data : JSON.stringify(msgData),
contentType : "application/json; charset=utf-8",
success : function (data) {
},
error: function (error) {
}
});
};
Web 控制器方法如下:
[Route("Api/EmailData/Send/{clientEmail}"), HttpPost]
public HttpResponseMessage ContactUs(string clientEmail)
{
EmailBody emailbody = JsonConvert.DeserializeObject<EmailBody> (clientEmail);
var result = MyDataRepository.ContactUs(emailbody);
return Request.CreateResponse(result == false ? HttpStatusCode.ExpectationFailed : HttpStatusCode.OK);
}
我的数据与我检查过的预期电子邮件 class 相符。但是我仍然收到 404 not found。如果我在 FIDDLER 中 运行 我得到的响应状态为 204 No Content.I 也包含在我的 Fiddler header:
Content-type:application/json
我怎样才能让它在我的 JS 客户端和提琴手上工作。任何指针表示赞赏。请注意,我在 IIS 的数据站点上为我的客户包含了 "Allow-Access-Control-Origin"。我还尝试按照 esle 某处的建议从我的 JS 客户端中删除 JSON.stringify。不知道我错过了什么。任何帮助。谢谢
您的格式可能不正确 url。如果我的怀疑是正确的,url 末尾的“/{}”可能是您问题的根源。
这里的 {} 很好,因为您在 api 控制器端
上声明了它 [Route("api/stuff/data/{id:int}")]
public Data GetDataById(int id)
{
// your code here
return data;
}
但是在你的 ajax 调用中只传递 url 而没有 curly 大括号
$.ajax({
type: 'POST',
url: "Api/EmailData/Send",
data: JSON.stringify(actionData),
traditional: true,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) { },
error: function (e) { }
});