我有一个表格:
<form id="orderForm" onsubmit="return prepareOrder(this);" action='@ConfigurationManager.AppSettings["EpayLogonUrl"]' method="POST"> <input type="hidden" name="Signed_Order_B64" value=""> <input type="hidden" name="email" size="50" maxlength="50" value="@Model.Email"> <input type="hidden" name="appendix" value="@Model.AppendixInfo"> <button class="wiz_button" type="submit" disabled="disabled"> <span><span id="buy_button_name">Buy</span></span></button> </form>
和一个函数PrepareOrder
function prepareOrder(form) { var selectedPayWay = $('.pay_cont.selected').data('way'); var result; $.ajax({ type: 'POST', url: '/Pay/CreateOrder', data: { payWay: selectedPayWay }, success: function (response) { if (response.IsSuccess) { switch (selectedPayWay) { case payWay.Terminal: showBookingInfo(response.BookingId, response.ExpiredDate); result = false; break; case payWay.Epay: $("input[type=hidden][name=Signed_Order_B64]").val(response.SignedString); $("input[type=hidden][name=appendix]").val(response.AppendixString); result = true; break; } } else { toastr.options.timeOut = 10000; toastr.info(response.Message); result = false; } }, error: function () { result = false; }, async: false }); return result; }
问题是在新的ipad(Safari)CreateOrder上未调用操作。在桌面浏览器上,它可以正常工作。控制台中没有错误。我尝试在之后添加警报:
CreateOrder
success: function (response) {
像那样:
success: function (response) { alert(response.IsSuccess)
并且alert还给我true。为什么?如果CreateOrder不调用。我还将日志记录添加到CreateOrder操作中,并且没有输出字符串。
alert
true
Safari和/或Ipad支持非常强大的缓存。我的应用程序中也遇到了同样的问题。尝试向您的控制器(甚至基本控制器)添加以下属性:
[OutputCache(NoStore = true, Duration = 0)]