我在jQuery、mobile和PhoneGap工作。目前面临着一个仍然存在的大问题。我搜索并应用了很多方法,但仍然存在问题。我的问题是当我在10秒后调用API的超时时。所以在iPhone版本中没有得到结果。但是它在Android中的返回结果(就android而言,它也显示超时,但我得到了它的结果)。
我在jQuery Ajax调用中尝试了超时方法。但是:-(
,这是我的代码;
function proceed_payment(){
var cardholder_= $('#input_Cardholder_name_').val();
var card_num_ = $('#input_CreditCard_').val();
var payment_ =$('#card_type_').val();
var cvv2_=$('#input_cvv2_').val();
var url;
if(showmond_value==0)
{
url='https://www.sample.com/json/save_pament.php?json=1& reserv_num='+reservation_number+'&callback='+reservation_carcompany+'&cardholder='+cardholder_+'&payment='+payment_+'&card_num='+card_num_+'&card_cvv2='+cvv2_+'&card_expire_mon='+expire_month+'&card_expire_year='+expire_year+'&org_deposit='+sCarDeposit+'&org_cur='+currency+'&mond='+company_Show_mond+''
}
$.ajax({
url:url,
data:'',
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "json",
timeout: 15000,
crossDomain:true,
cache: false,
async:false,
success:function(data)
{
alert(data.Status);
}
});
};
超时屏幕快照(在Eclipse中签入)..
发布于 2013-08-02 06:06:53
尝试将ExternalHosts
项目的PhoneGap.plist
文件的PhoneGap.plist
属性设置为*
,以便将请求白名单到外部域。
您还可以尝试将以下代码添加到JS文件中,以确保在jQuery框架中执行webView时为其启用跨域请求。
$( document ).on( "mobileinit", function() {
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
});
另外,至少在早期版本的jQuery中,jsonp超时错误被忽略存在问题(我认为在$.ajax
调用中设置crossDomain:true
会导致jQuery mobile中的jsonp回退)。因此,您可以尝试使用以下插件:jQuery
jQuery是jQuery实现JSONP的一种紧凑(1.8kB小型化)的替代解决方案。 ..。 jQuery特性:
,这将使您的调用类似于以下内容(注意$.jsonp
函数的使用而不是$.ajax
)
$.jsonp({
"url": url,
"data": "",
"datatype": "json"
"timeout": 15000,
"success": function(data) {
alert(data.Status);
},
"error": function(d,msg) {
alert("Could not find user "+userId);
}
});
https://stackoverflow.com/questions/18009083
复制相似问题