javascript - jQuery post 不适用于 safari 但适用于 chrome
问题描述
我一直面临一个 safari 问题,其中 JQuery post 方法适用于 chrome,但它不适用于 safari,除非我使用这段代码将 JQuery post async 设置为 false
$.ajaxSetup({ async: false });
页面重定向也不适用于 safari,但它适用于 chrome
window.location.href = data.url;
知道为什么我会在 safari 上出现这种行为以及如何解决它。这是我正在使用的代码
$('#submit').click( function () { //post
if ($('form').validate().checkForm() === false) {
alert('Form is invalid.');
return;
}
var tool = $("#Tool").val();
var email = $("#Email").val();
var message = $("#Message").val();
var attachement0 = $("#Attachement0").val();
var attachement1 = $("#Attachement1").val();
var attachement2 = $("#Attachement2").val();
var attachement3 = $("#Attachement3").val();
var attachement4 = $("#Attachement4").val();
var dataToPost = {};
dataToPost.Tool = tool;
dataToPost.Email = email;
dataToPost.Message = message;
dataToPost.Attachement0 = attachement0;
dataToPost.Attachement1 = attachement1;
dataToPost.Attachement2 = attachement2;
dataToPost.Attachement3 = attachement3;
dataToPost.Attachement4 = attachement4;
// $.ajaxSetup({ async: false });
$.post("@Url.Action("BugReport_Send_JQuery","BugReport")", { model: dataToPost }).done(function (data) {
if (data.status == 1) {
alert(data.message);
window.location.href = data.url;
}
else if (data.status == 0) alert(data.error);
});
});
服务器端发布方法
[HttpPost]
public async Task<IActionResult> BugReport_Send_JQuery(User_BugReportViewModel model)
{
if (ModelState.IsValid)
{
var bugReport = new BugReportModel()
{
Tool = model.Tool,
Email = model.Email,
Message = model.Message,
Attachement0 = model.Attachement0,
Attachement1 = model.Attachement1,
Attachement2 = model.Attachement2,
Attachement3 = model.Attachement3,
Attachement4 = model.Attachement4,
Resolved = false,
CreationDate = DateTime.Now,
ResolutionDate = new DateTime(),
};
try
{
await appDBContext.BugReportsTB.AddAsync(bugReport);
await appDBContext.SaveChangesAsync();
}
catch (Exception e)
{
return Json(new { status = 0, error = e.Message });
}
return Json(
new
{
status = 1,
message = "A ticket has been created, Thank you for your coperations!",
url = Url.Action("TicketCreate", "Email", new { email = bugReport.Email }),
});
}
return Json(new { status = 0, error = "something went wrong!" });
}
解决方案
推荐阅读
- java - 如何将 JSON 拆分为数据集行?
- php - Laravel 5.7 视图中未定义的变量
- sql-server - SSRS - Windows 文件共享
- javascript - 为什么 Vuejs 不注册启用或禁用我的按钮?
- android - 添加到 RelativeLayout 时更改 GridView
- javascript - 用php重定向选中的复选框并使其工作
- python - 通过 SSL/TLS 的 FTP/FXP 服务器到服务器传输
- kubernetes - 以声明方式(在 yaml 中)自动扩展 google Cloud-Endpoints 后端部署?
- java - Weblogic 12c 中如何处理异常?
- apache-kafka - Kafka Connect Hdfs Sink 连接器 - 找不到类 io.confluent.connect.hdfs.string.StringFormat