РАБОЧАЯ !!! О, СЛАВА !!! (вроде): вот что я сделал ...
Вместо того, чтобы использовать .ajax, я пошел по маршруту JSONP (вроде) и динамически добавил тег в мою голову так:
var head = document.getElementsByTagName('head')[0];
script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://thesite.co/thepage.php?var1=123&var2=432&var3='ttt';
head.appendChild(script);
Мне даже не пришлось давать ему метод CALLBACK, потому что (поскольку я владею целевым сайтом и знаю, как он поступает) на моей стороне PHP, я обертываю возвращаемое значение методом methodName следующим образом:
$ encoded = json_encode ($ json);
echo "testMethod (". $ encoded. ")";
Это сработало на удивление, КРОМЕ НА ЧЕРТЫХ симуляторах iPhone и iPad !!! (черт возьми, мне нужно купить реальные устройства ...) Так что я все еще не знаю, работает ли это на реальных устройствах, но теперь работает в Chrome и Safari ... будем надеяться, я смогу выяснить, как заставить его работать на этом телефоне !
СПАСИБО всем за помощь!
========== ВТОРОЕ ЛУЧШЕЕ МОБИЛЬНОЕ РЕШЕНИЕ ====================== Это работает лучше, чем решение JSONP - динамический скрипт. ..
Вставьте этот тег в свою голову под вызовами Phonegap и JQ.
<script type="text/javascript">
$(document).bind("mobileinit", function () {
$.mobile.allowCrossDomainPages = true;
});
</script>
Затем в файле Phonegap.plist в папке ресурсов XCODE добавьте домен во внешние домены ... т.е. phonegap.com. (Оставьте http или www).