通过电子邮件将 AJAX POST 发送到 Web 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);
}
我的数据与我检查的预期电子邮件类别匹配。但是我仍然找不到 404。如果我在 FIDDLER 中运行,我会得到响应状态为 204 无内容。我还包含在我的 Fiddler 标头中:
内容类型:应用程序/JSON
我怎样才能让它从我的 JS 客户端和小提琴手工作。任何指示赞赏。注意,我在 IIS 中的数据站点上为我的客户端提供了"允许-访问控制-源"。我还尝试从我的 JS 客户端中删除 JSON.stringify,如其他地方的建议。不知道我错过了什么。任何帮助。谢谢
看起来您的网址格式不正确。 如果我的怀疑是正确的,url末尾的"/{}"可能是您问题的根源。
这里的 {} 很好,因为您在 api 控制器端声明了这一点
[Route("api/stuff/data/{id:int}")]
public Data GetDataById(int id)
{
// your code here
return data;
}
但是在您的 ajax 调用中,只需传递不带大括号的 url
$.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) { }
});
相关文章:
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- 如何在visualstudio中调试web api时编辑javascript文件
- 将复杂对象从angular js传递到web api,它总是返回404
- 将文档上载到Web API
- 对/Token的ASP Web API调用间歇性
- 从其他域和计算机发布的 Web API 帖子
- Web API 调用在设备模式下失败
- Testing .NET Web API from JavaScript
- 将日期作为从 Web API 到 angularJS 的 json 响应
- 获取 Spotify 用户 [Web API] 当前播放的曲目名称
- 在我的 Web API 中无法获取我的自定义标头
- Json 参数强制转换继承 Web API 2.
- 使用来自AngularJS的Web API JSON响应-错误:应为和数组,但得到了一个对象
- Javascript in Visual studio Web Api
- 获取AJAX中未定义的值(x),web api
- Web API在JSON调用上返回XML
- 将JSON字符串发布到WEB API
- 如何通过AngularJS$http从ASP.Net Web API 2获取访问令牌
- 使用ASP.Net MVC Web Api将JSON数据导出到Excel工作表
- 从mvc web api httpresponse生成csv,并通过angularjs接收下载