Javascript $.ajax在ios设备(iphone)上不起作用
单击按钮时,我正在调用一个函数,该函数进行$.ajax调用,以从第三方url获取相关数据 它在除ios以外的所有设备和浏览器中都能正常工作 这是我的按钮:Javascript $.ajax在ios设备(iphone)上不起作用,javascript,jquery,ios,iphone,ajax,Javascript,Jquery,Ios,Iphone,Ajax,单击按钮时,我正在调用一个函数,该函数进行$.ajax调用,以从第三方url获取相关数据 它在除ios以外的所有设备和浏览器中都能正常工作 这是我的按钮: <input type="submit" id="continue-btn" class="button primary-btn button-type-1" value="Buy Policy" onclick="validateCardDetails();" /> 定义“不工作”您在控制台中是否遇到任何错误?否。它不会出现
<input type="submit" id="continue-btn" class="button primary-btn button-type-1" value="Buy Policy" onclick="validateCardDetails();" />
定义“不工作”您在
控制台中是否遇到任何错误?否。它不会出现任何错误,即使它也不会成功。。所以基本上既没有成功也没有错误。不要单击onClick
属性,而是使用jQuery将其绑定:$('#continue btn')。单击(function(){….})代码>2。添加警报(“测试”)在函数的开头使用code>,以确保单击事件被触发。3.调试:在$.ajax
函数之前添加alerts()
,在success:function(res){
之后和error:function(){
之后添加alerts()。。我注意到的另一件事是一个提交按钮,因此如果它有某种行为(提交表单),则需要添加preventDefault()
或返回false/true
以防止其自然行为。
function validateCardDetails() {
var todaysPaymentOption, paymentOption, nameOnCard, ccExpYear, ccExpMonth, cardNumber, cardCVVCd, cardType, accHolderName, accType, accNumber, routingNumber, paymentAmount, repetitiveDrawDate, repPaymentOption, billingFrequency, futurePaymentAmount, rep_nameOnCard, rep_ccExpYear, rep_ccExpMonth, rep_cardNumber, rep_cardType, rep_accHolderName, rep_accNumber, rep_routingNumber, rep_accType, enableAutopay, policyNumber;
var applicationId = $("#ppApplicationId").val();
todaysPaymentOption = $("#paymentMethod input[type=radio]:checked").val();
paymentOption = $("#selectedPaymentOption").val();
nameOnCard = $("#tdyFname").val();
ccExpYear = $("#ttdyexpyYear").val();
ccExpMonth = $("#ttdyexpyMonth").val();
cardNumber = $("#tdyCardnum").val();
cardCVVCd = $("#tdyCardvv").val();
var cardTypeTemp = $("#cardType input[type=radio]:checked").val();
cardType = $("#cardType").val();
accHolderName = $("#tdyAccountHolderName").val();
accType = $("#accountType option[selected]").val() ? $("#accountType option[selected]").val() : '02';
accNumber = $("#tdyBankAccount").val();
routingNumber = $("#tdyRoutingNumber").val();
paymentAmount = $("#todaysPayment").val();
// $("#refNo").text(sfs);
repetitiveDrawDate = "";
repPaymentOption = "";
billingFrequency = "";
futurePaymentAmount = "";
rep_nameOnCard = "";
rep_ccExpYear = "";
rep_ccExpMonth = "";
rep_cardNumber = "";
rep_cardTypeTemp = "";
rep_cardType = "";
rep_accHolderName = "";
rep_accNumber = "";
rep_routingNumber = "";
rep_accType = "";
enableAutopay = "false";
policyNumber = $("#policyNumber").val();
var contentObject = {
applicationID : applicationId,
todaysPaymentOption : todaysPaymentOption,
paymentOption : paymentOption,
nameOnCard : nameOnCard,
ccExpYear : ccExpYear,
ccExpMonth : ccExpMonth,
cardNumber : cardNumber,
cardCVVCd : cardCVVCd,
cardType : cardType,
accHolderName : accHolderName,
accType : accType,
accNumber : accNumber,
routingNumber : routingNumber,
paymentAmount : paymentAmount,
repetitiveDrawDate : repetitiveDrawDate,
repPaymentOption : repPaymentOption,
billingFrequency : billingFrequency,
futurePaymentAmount : futurePaymentAmount,
rep_nameOnCard : rep_nameOnCard,
rep_ccExpYear : rep_ccExpYear,
rep_ccExpMonth : rep_ccExpMonth,
rep_cardNumber : rep_cardNumber,
rep_cardType : rep_cardType,
rep_accHolderName : rep_accHolderName,
rep_accNumber : rep_accNumber,
rep_routingNumber : rep_routingNumber,
rep_accType : rep_accType,
enableAutopay : 'false',
policyNumber : policyNumber
};
// covert to query string format
var parameters = $.param(contentObject);
var paymentProcessorURL = $('#userDetailsValidatorUrl').val();
$.ajax({
type : "POST",
url : paymentProcessorURL,
crossDomain:true,
cache:false,
timeout: 15000,
data : parameters,
dataType: 'jsonp',
success : function(response) {
//response = parseJsonResponse(response);
processAjaxBillingResponse(response,todaysPaymentOption);
},
error : function(){
// if ajax call fails then handle error and display message on screen
var errorData = {"paymentAmount": paymentAmount};
var errorMessage = getPaymentErrorMessage("systemError",errorData);
showPaymentOptionsPage();
setGlobalErrorMessage("#globalValidation",errorMessage);
}
});
}