我使用jQuery的ajax post将表单中的数据发送到外部CRM。后面有一个带有C#代码的ASP.net,用于处理外部URL。
我用同样的方法做过AJAX帖子,从来没有遇到过这个问题。它在所有桌面浏览器上都能正常工作,但在iPad/iPhone上会冻结,在Android设备上会超时。
下面是这篇文章的代码:
function mfSubmit(event) {
event.preventDefault();
if (mfValidateForm4() == true) {
$('a#aAction').hide();
$('#mfLoader').show();
var campaignID = "18";
if ($("#campID").val() != undefined) {
campaignID = $("#campID").val();
}
var referID = function () {
var myNumber = "1";
myNumber = 70000000 + Math.floor(Math.random() * 70000000);
return myNumber;
};
//alert("Campaign: " + campaignID);
$.ajax({
type: "POST",
url: "/PostHelper.ashx?target=externalURL" + campaignID,
data: {
FirstName: firstname,
LastName: lastname,
Email: email,
Phone: phone,
PropertyZipcode: zip,
PropertyState: state,
CurrentCity: city,
EstimatedHomeValue: estimatedValue,
LoanAmount: loanAmount,
TransactionType: loanPurpose,
CreditRating: creditScore,
ReferId: referID
},
success: function (msg) {
//alert('SUCCESS');
var newURL = document.location.href;
newURL = newURL.replace('#slide-5', '#slide-6');
document.location.href = newURL;
},
error: function (msg) {
console.log(msg);
//alert('ERROR');
},
datatype: 'text'
});
}
return false;
}正从传递事件的'onclick‘调用mfSubmit函数。externalURL只是一个占位符。此外,来自服务器的响应只是文本格式的“成功”。
这在所有桌面浏览器上都有效,但在苹果移动设备上会一直冻结,在Android上只会超时。
任何建议或帮助都是非常感谢的。
发布于 2013-08-17 04:31:13
这原来是ajax函数的data属性中使用的一个未声明的变量。
虽然宣布它确实解决了这个问题,但我发现非常奇怪的是,这并没有导致基于桌面的浏览器出现任何问题。
我几乎已经排除了任何类似的事情,因为它工作得很好,除了移动设备。
活到老,学到老
https://stackoverflow.com/questions/18263860
复制相似问题