2014-11-16 3 views
2

Я новичок в Ionic, Apahce Cordova и я создали простое приложение, которое имеет элементы статического списка, но я хочу получить данные из таблицы MYSQL и заменить это в моем статическом списке. Я Google, это кто-то работал над этим, но я не знаю, куда я должен поместить свои php-файлы, и я создал некоторые php-файлы в файлах Ionic app/www/php, но это не работает для меня и каково ваше решение? СпасибоIonic framework и php mysql

+0

вам нужно поместить файлы PHP на веб-сервер и использовать AJAX, чтобы вытащить данные на вашу кордову APP и заполнить ионный список. PHP не должен работать внутри вашего мобильного телефона. PHP - это скриптовый язык на стороне сервера, который работает в сочетании с веб-сервером. – frank

+0

Да Я размещал на своих localhost www/test/php-файлах, но если вы хотите получить доступ к результатам этих файлов, у меня получилась ошибка: запрос на перекрестный запрос заблокирован: политика одинакового происхождения запрещает чтение удаленного ресурса по адресу http: // localhost /test/result.php?action=test. Это можно устранить, переместив ресурс в тот же домен или включив CORS. –

+0

Пожалуйста, найдите Stackoverflow или Интернет о том, как включить CORS в кордове. Вы найдете много ссылок для решения проблемы CORS. Ошибка не имеет ничего общего с PHP, это проблема конфигурации. Чтобы включить CORS, вам необходимо настроить кордову и веб-сервер. – frank

ответ

2

Вы можете поместить свои PHP файлы в локальный или жить server.I была такая же проблема (Cross-Origin Request Заблокировано), когда приложение запускается в browser.Here являются решениями из моего опыта

1. Проверьте приложение в эмуляторе не в браузере и измените адрес локального хоста на этот http://10.0.2.2/test/test.php. Это будет отлично работать для меня

2.если вы работаете в устройстве Android, доступ к которому вы не можете получить с локального хоста, поэтому поместите файлы в живую сервер например: http://www.testapp.in/test/test.php

+0

Спасибо, что работает на моем эмуляторе, но не в браузере. –

+0

Зачем вы тестировали в браузере? –

+0

Потому что я хочу увидеть результат как можно скорее, и у меня недостаточно времени. –

0

Как указано выше, ваш Файлы PHP должны размещаться на веб-сервере. И поскольку ресурс не является локальным для вашего приложения, вам понадобится $http.jsonp, что позволяет CORS.

Вот пример того, как вы отправляете запрос на страницу PHP в AngularJS.

$http.jsonp("http://domain/project/example.php?callback=JSON_CALLBACK&p1=" + $scope.val1 + "&p2=" + $scope.val2) 
    .success(function(data) { 
     //some function 
    }) 

.error(function(data) { 
    console.log("http request failed"); 
}); 

ИЛИ

Для отправки запросов с помощью JQuery, вы можете передать этот пост: https://stackoverflow.com/a/28740155/4412363

Теперь вы можете $_GET данные, то вы необходимо иметь отклик в JSONP, также вам нужно добавить обратный вызов в свой ответ. Это будет выглядеть так:

echo $_GET['callback'] . '(' . json_encode($result) . ')'; 

PS: Здесь Ионные заботится о IP-адресов, когда вы пытаетесь на эмуляторе. Поэтому я просто установил домен url для моего local IP address, и он работает на всех устройствах (настольном, эмуляторе и мобильном)