嗨,朋友们, 我在MVC应用程序中有一个Ajax调用,它使调用操作如下所示。
$.ajax({
url: '<%=ConfigurationManager.AppSettings["AppUrl"].ToString()%>/Account/CustomerRegister',
type: "GET",
data: {
name: cname, //these valus are retreived from text controller
email: cemail,
phone: cphone,
msg: cmsg
},
success: function (result) {
if (result.Status == "success") {
window.location = "welcome.aspx";
}
else {
$("#msgsuccess").text("There was an error while submitting your query. Please try again.");
$("#msgsuccess").addClass("red");
}
},
error: function (da) {
$("#msgsuccess").text("There was an error while submitting your query. Please try again.");
$("#msgsuccess").addClass("red");
}
});
我在这里面临的问题是当url指向SSL配置的站点时,ajax方法总是出错,其中action方法中没有异常,并且注册用户和发送邮件功能成功实现。
关注的是,当url配置为非SSL(同一站点)时,它可以正常工作,但是当站点配置为SSL时会导致错误:功能,我花了一些时间在谷歌搜索但无法找到解决方案任何建议或者对此有所帮助。
下面是我的行动方法。
[HttpGet]
[AllowAnonymous]
public System.Web.Mvc.JsonResult CustomerRegister(string name, string email, string phone, string msg)
{
try
{
//add customer fucnionaltiy
//Send email to customerSupport.
var sb = new StringBuilder();
sb.Append("Dear" + name );
sb.Append("\n\t\t\t\t registration is done............ ");
sb.Append("\n WebMaster.");
util.SendEmail(email, "Customer Register", sb.ToString(), false);
return Json(new {Status = "success"}, JsonRequestBehavior.AllowGet );
} catch {
return Json(new { Status = "Invalid" }, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:0)
将我的ajax调用从http升级到https时,我收到了400 BAD REQUEST。
在我的情况下,当通过HTTPS进行ajax调用时,一个特殊的charachter'é'会导致问题。
您可能需要对所有特殊字符进行编码。