У меня проблема с моим проектом phonegap, работающим на симуляторе Blackberry. Версия 10.
Когда я говорю «телефонную разборку», я еще не использовал функции Кордовы, но мои простые функции javascript не работают в первую очередь.
У меня есть кнопка, которая вызывает функцию Javascript. Эта функция JS имеет URL-адрес PHP для получения данных. Ниже приведен код функции –
function getAllDetails() { var myTable = ''; myTable += '<table id="myTable" cellspacing=0 cellpadding=2 border=1>'; myTable += "<tr><td><b>S.No.</b></td><td><b>Full Name</b></td><td><b>DOB</b></td><td><b>Gender</b></td><td><b>Address</b></td><td><b>Image</b></td><td><b>Video</b></td></tr>"; var url = "http://XXX.XXX.XX.XX:XX/PG_crud_experiment1/retrieve_all.php"; $.getJSON(url, function(json) { $.each(json, function(i, v) { alert(v.id); myTable += "<tr><td>" + v.id + "</td><td>" + v.name + "</td><td>" + v.dob + "</td><td>" + v.address + "</td><td>" + v.image + "</td></tr>"; }); $("#emp_tb1").html(myTable); }); };
Проблема здесь в том, что мой кнопочный щелчок вводит функцию Javascript, но я получаю сообщение о том, что он не может получить доступ к URL-адресу, где размещается мой PHP-файл. PHP фактически запускает SELECT SQL и извлекает значения из базы данных.
Ниже приведен снимок экрана моей ошибки на симуляторе BB 10.
Может кто-нибудь, пожалуйста, скажите мне, почему эта проблема подходит? Предусмотрены ли какие-либо предварительные условия / процедуры, прежде чем устройство сможет запускать некоторые функции Javascript или получить доступ к скриптам PHP на сервере? XXX
Решение заключается в редактировании файла config.xml проекта – добавьте тег <access subdomains="true" uri="http://*URI name here*"/>
. Только тогда Blackberry разрешает доступ к другому домену.
Это может быть проблема межсайтового запроса – я подозреваю, что сторона PHP не принимает запросы из-за пределов своего собственного домена.
Как разместить этот заголовок в верхней части вашего PHP-файла?
header('Access-Control-Allow-Origin: *');
Как ранее сообщалось ранее, вам необходимо включить перекрестное доменное происхождение в вашем php-файле сервера. Также вам нужно иметь <access subdomains="true" uri="http://*URI name here*"/>
в config.xml для ежевики.
Наличие обоих этих решений должно решить вашу проблему.