Доступ к PHP запрещен с платформы Blackberry 10 с помощью телефонной пробки - закрыто
У меня проблема с моим проектом phonegap, работающим на симуляторе Blackberry. Версия 10.
Когда я говорю телефонный разрыв, я еще не использовал никаких функций Cordova, но мои простые функции javascript не работают в первую очередь.
У меня есть кнопка, которая вызывает функцию Javascript. Эта функция JS имеет PHP как URL для извлечения данных. Ниже приведен код функции -
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
3 ответа
Решение проблемы - отредактировать файл 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 для ежевики.
Наличие обоих из них должно решить вашу проблему.