我正在使用AJAX发送电子邮件,它可以正常工作,电子邮件会发送给我的收件人。但是,我不明白为什么尽管已发送电子邮件,但未触发AJAX的success
回调。相反,会触发error
回调。
显然这不是CORS问题,因为我在AJAX的url
参数中使用相同的服务器。 Google Dev Tools也未报告任何问题,并显示200 OK
。
JS代码:
$(document).ready(function(){
$(".js-validate-2").validate({
ignore: ":hidden",
rules: {
//something
},
messages: {
//something
},
submitHandler: function(form) {
var recipient = "myEmailTest@gmail.com"
var specifiedProduct = "PRODUCT: " + $('#specifiedProduct').val();
var msg = $('#msg').val();
var phone = "TEL: " + $('#phone').val() + ". ";
var params = {
"email": recipient,
"subject": specifiedProduct,
"body": msg + phone,
};
var sendingToSupport = $.ajax({
url: 'http://myServer/u/support/message',
data: JSON.stringify(params),
type: 'POST',
dataType: 'json',
contentType: 'application/json',
success: function(data) {
console.log("Huge success");
console.log(params);
console.log(data);
alert("Successfully sent!");
},
error: function(data) {
console.log("Huge failure");
console.log(params);
console.log(data);
alert("We apologize for an error!");
$(".support-form").find("input[type=text], textarea").val("");
}
});
}
})
})
答案 0 :(得分:0)
所以,问题是由以下代码引起的:
dataType: 'json',
表示AJAX调用返回的数据将采用JSON格式。因此jQuery将尝试解析这些数据。
在我的情况下,删除此代码有帮助,并且AJAX调用已成功发送并返回了正确的答案。