JavaScript — нет результата от getJSON в Cordova

У меня есть проблемы с моим приложением Cordova. У меня есть страница php с мини-сервисом REST с выводом JSON, и я хочу использовать этот результат в своем приложении.

Php страница:

<?
header("Content-Type:application/json");

function response($status, $status_message, $data){
header("HTTP/1.1 $status $status_message");

echo $data;
}$link = mysqli_connect("db4free.net", "luigi", "nzor4csv4", "usl5");
if (mysqli_connect_errno()) {
response(400, "Failed to connect to MySQL", mysqli_connect_error());
}if( !empty($_GET['prestazioni']) ){
//make response using database
$result = mysqli_query($link,"SELECT DISTINCT `ppasez_descrizione` FROM `prestazioni`");

$arr = array();

while($obj = mysqli_fetch_assoc($result)) {
$arr[] = $obj;

}
$message= json_encode($arr);

response(200, "lista prestazioni", $message);
} else {
//invalid request
response(400, "invalid request", NULL);
}
?>

HTML-страница:

<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="cordova.js"></script>
<link rel="stylesheet" href="js/libs/jquery-mobile/jquery.mobile.css" />
<script type="text/javascript" src="js/libs/jquery/jquery.js"></script>
<script type="text/javascript" src="js/libs/jquery-mobile/jquery.mobile.js"></script>

<script type="text/javascript" src="js/mainjs.js"></script>
<script>
$(document).ready(function(){
$.support.cors=true;
$.mobile.allowCrossDomainPages = true;
$("button").click(function(){
$.getJSON('http://www.****.it/provaluigi/index.php?prestazioni=""',function(data){
$.each(data, function(i, dat){
$("ul").append("<li>"+dat.ppasez_descrizione+"</li>");
});
$('ul').listview('refresh');
//if $("list") do $("list").listview("refresh);
});
});
});
</script>
<title>
Prestazioni
</title>
</head>

<body>
<section id="page1" data-role="page" data-fullscreen="true">
<div class="content" data-role="content">
<ul data-role="listview" data-filter="true" data-filterplaceholder="cerca prestazione">
</ul>
</div>
</section>
</body>

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

Как вы видите, я вставляю:

            $.support.cors=true;
$.mobile.allowCrossDomainPages = true;

а также

<access origin="*"/>

в config.xml, чтобы разрешить междоменный запрос.

Также, когда я тестирую в chrome с «расширением пульсации», я замечаю 2 ошибки:

Failed to load resource    http://localhost:8383/Centri%20USL/config.xml

а также.

Failed to load resource: net::ERR_EMPTY_RESPONSE     http://localhost:8383/Centri%20USL/cordova.js

Так что, вероятно, есть некоторые ошибки в связывании пакета Cordova, но я использую NetBeans, так что это все автоматически.
Может кто-нибудь помочь мне найти ошибку?

Спасибо всем

0

Решение

Согласно Документация PhoneGap

Правила белых списков находятся в res / xml / cordova.xml

Попробуйте добавить это правило в res/xml/cordova.xml

0

Другие решения

Ошибка может быть вызвана тем, что вы пытаетесь получить доступ только с localhost и нет реального имени машины. Введите ваше имя хоста или IP-адрес.

Это означает, что вам нужно изменить http://localhost:8383/ что-то вроде http://192.168.1.1:8383/ или же http://fastbox:8383

-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector