[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос к ГУРУ jQuery
Страницы: 1, 2
Alexey11
Доброго времени суток всем!

3 дня не сплю, не ем.... голову сломал(((
подскажите, если у кого есть мысли...
суть:
Пишу (пытаюсь написать) гибридное приложение под андроид...
использую jQuery Mobile (взял его потому что вроде как самый более менее освященный по-русски, как мне показалось.... возможно недостаточно тщательно искал доку по другим подобным "штукам")
Собираю apk 2-мя способами.... локально - через cordova, и пробовал через PhoneGAP Bulder (онлайн)...
Столкнулся с бедой когда AJAX запросы не выполняются в приложении (уже собранном в apk) на андроиде...
Пробовал отказаться от методов jQuery (перепробовал и $.get, и $.post, и $.ajax, и $.load), и попробывал сделать запрос через стандартный XMLHttpRequest... тоже не помогает...
Отладка алертами показала что методы jQuery, (по ощущениям) игнорируются вообще.... как будто кусок кода выпадает, словно за комментированный...
Через стандартный хттпРекуест выполняется.... но в ответе приходит null, если асинхронный... и undefined, если асинхронность = false...
На стороне ajax ответчика (PHP) присутствует header("Access-Control-Allow-Origin: *");
да, запрос пытаюсь провести кроссдоменный.... ну похоже что по другому то и не получится.... как я понимаю (а может ничего и не понимаю вовсе))))
Подскажите, может кто то сталкивался с подобным... или есть мысли по этому поводу....
Заранее, всем спасибо!

_____________
Alexey11
бегло прочел про плагин jquery.xdomainajax.js
без него вообще кроссдоменных запросов не сделать???
его использование в моем случае обязательно... ?

_____________
Alexey11
в дополнение:
в методе jquery пробовал datatype'ы json, text: (безрезультатно)
пробовал с jsonp, и вызовом колбека-обработчика (безрезультатно)

_____________
Игорь_Vasinsky
т.е. ты вообще на серверной стороне запрос не видишь? данные с приложения не приходят на сервер?

а что дебаггер говорит?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Alexey11
Так нет, в том то и дело что из под браузера, все тип-топ.... и сервер видит запрос, и ответ посылает... и jquery все в ответе принимает и видит... все гуд....

Собираю все это дело в apk, запускаю на смартфоне.... и все.... магия пропадает.... при этом js отрабатывает... т.к. добавленные алерты, вываливаются при клацании внутри приложения...

деректива <uses-permission android:name="android.permission.INTERNET" />
в AndroidManifest.xml - присутствует...
(при установке приложение сообщает о том что требует разрешения на доступ к передачи данных)

в чем проблема, не могу понять.... unsure.gif

_____________
Alexey11
вроде поговаривают что AJAX это как раз таки только браузерная технология...
и мол в гибридных приложениях не прокатит.... не ужели все онлайн приложения нативные на все 100%....... (((

_____________
Игорь_Vasinsky
Alexey11
аякс это транспорт между сервером и клиентом, аякс это JS

вот е мануал для андрюши https://www.androidpit.com/app/com.redait.ajax.tutorial.paq - стало быть можно.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Alexey11
Да в браузерах то понятное дело что отработает, оно и отрабатывает - как нужно....
а вот после сборки в apk, на андроиде, уже нет....
запускается приложение не в браузере гаджета, а как нативное....

_____________
killer8080
Цитата (Игорь_Vasinsky @ 25.04.2016 - 15:20)
аякс это транспорт между сервером и клиентом, аякс это JS

XHR это фича браузера введённая мозилой (позже принятая остальными браузерами), к самому JS она отношения не имеет, и не обязана присутствовать в других реализациях. В ишаке к примеру она изначально была реализована в виде ActiveX компонента.
Alexey11
тогда встает вопрос, возможно ли вообще сделать ГИБРИДНОЕ ОНЛАЙН приложение.... именно есть ли варианты заставить гибрид обмениваться данными с удаленным сервером.... или же это только нативное приложение писать ???

_____________
Alexey11
в теории должно же работать.... т.к. js на платформе android отрабатывает нормально..... да и феньки jquery пашут.... а вот ajax и XHR нет..... ((((

_____________
killer8080
Alexey11
что говорит ?
alert(window.XMLHttpRequest)
Alexey11
object [XMLHttpRequest] говорит



var xml=new window.XMLHttpRequest();
xml.open("GET", "http://127.0.0.1/mobi/test.php?operation=get_test_data", true);
xml.send();
(это пример с локала, проверял на эмуляторе android)
при этом
alert(xml); = object [XMLHttpRequest]
а вот
alert(xml.response) или alert(xml.responseText) вываливает просто пустой алерт....

проверял и на реальном гаджете, с указанием сервера в сети.... то же самое....

_____________
killer8080
Цитата (Alexey11 @ 25.04.2016 - 15:41)
а вот
alert(xml.response) или alert(xml.responseText) вываливает просто пустой алерт....

надеюсь ты их не сразу выводишь, а в onreadystatechange обработчике?

Попробуй со стороны сервера слать заголовки как тут описано, возможно одного Access-Control-Allow-Origin: * андроиду недостаточно?



Спустя 1 минута, 30 секунд killer8080 написал(а):
плюс на стороне сервера сделай логгер, чтоб убедится что запросы действительно не приходят, или снифь трафик.
Alexey11
по ссылке выше - 404 (((

а алерты вывожу в
$(document).ready(function(){
...
});

_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.