1
我有一個需要將數據發佈到遠程服務器的Phonegap應用程序。但是,當我嘗試使用jQuery的$ .post時,它永遠不會進入回調。
這裏是我的javascript:
$(document).ready(function() {
$('form').submit(function() {
console.log('about to post');
$.post('http://mysubdomain.mydomain.com/index.php', function(data) {
console.log('In callback');
console.log(data);
});
});
});
當我運行這一點,看看在Eclipse的logcat,我看到了「關於發佈」,但我從來沒有看到「回調」。我在我的服務器上的PHP文件中將這個腳本標記轉存到腳本標記中,以確保它正確無誤,當我刷新頁面時,我看到HTML控制檯中顯示的HTML。我已經在res/xml的config.xml文件中將所有域列入了白名單,所以我不明白爲什麼這不起作用。如果有人有任何見解,請讓我知道。謝謝!
我上面的回答一致,除了它可能失敗,因爲你可以不.post的$到:與類似嘗試相同的請求除了提供頁面的位置以外的其他主機。這是可以避免的(不是問題)在phonegap,但你必須運行在Android/IOS模擬器 – olore
感謝您的建議。我試過,並能夠打印出我收到的錯誤:{「readyState」:0,「responseText」:「」,「status」:0,「statusText」:「error」}。我嘗試了谷歌搜索,唯一的結果是關於跨域腳本問題。我已經在模擬器上和我的手機上嘗試了這一結果。也許我的Phonegap配置有問題嗎? – amandawulf
readyState 0表示請求已被取消,從未發送。如果您認爲這是一個CORS問題,您可以使用--disable-web-security選項通過命令行在Chrome中運行它來進行確認。在Chrome devtools中,您還可以選擇「Log XMLHttpRequests」選項,這將讓您輕鬆檢查控制檯中的請求 – Andbdrew