3
我想向我的遠程服務器發出一個AJAX調用,上傳幾個參數並下載一些內容。該腳本在瀏覽器中完美工作,但不適用於PhoneGap(在Ripple,chrome上測試)。PhoneGap ajax和jsonp問題
我已經看過了,如問題和解決方案:
PhoneGap not issuing AJAX (jsonp) request
Issues with jQuery, ajax, and jsonp
Ajax調用:
$.ajax({
url: "https://mydomain.com/file.php",
data: {test:"test"},
type: 'GET',
dataType: 'jsonp',
timeout: 5000,
success: function(data){
if(data['var'] == 'correct'){
notifyAlert('correct','Login');
}else{
notifyAlert('incorrect','Login');
}
},
error: function(x,e){
if(x.status==0){
notifyAlert('You are offline!!\n Please Check Your Network.', 'Error');
}else if(x.status==404){
notifyAlert('Requested URL not found.', 'Error');
}else if(x.status==500){
notifyAlert('Internel Server Error.', 'Error');
}else if(e=='parsererror'){
notifyAlert('Error.\nParsing JSON Request failed. '+x.status, 'Error');
}else if(e=='timeout'){
notifyAlert('Request Time out.');
}else {
notifyAlert('Unknow Error.\n'+x.responseText, 'Error');
}
}
});
遠程服務器代碼:
$record = array('var' => 'correct');
echo $_GET['callback'] . '(' . json_encode($record) . ');';
我的config.xml文件有:
<access origin="https://mydomain.com" />
當紋波(模擬器)測試它給我的狀態0錯誤。當在本地服務器上測試同一個腳本時(通過瀏覽器),它會給我提供正確的無效警報。
我還測試了一個json調用,並且在模擬器中完美地工作,但是當我將apk上傳到我的手機時它不起作用。與jsonp(狀態0錯誤)相同的結果與上面的問題。
似乎有一個與紋波模擬器的問題。測試相同的代碼與日食和一切正常! 它可能是Ripple中的cordova版本,但是在使用cordova version 2.0.0進行測試後,它仍然給了我0狀態錯誤。我唯一能想到的就是我的config.xml是錯誤的,但這並不能解釋json測試工作和jsonp測試不起作用的事實。 – rinaldo