Я хочу получить данные из моей базы данных в свой Angluar.js.
Итак, я создал файл php, который выбирает мои данные. Я прочитал, что мне нужно использовать jsonp, иначе я не получу данные.
data.php
<?php
$db = mysqli_connect("xxx", "xxx", "xxx", "xxx");
$select = "select * from product;";
$result = mysqli_query($db,$select);
if ($result) {
$i=0;
$outp = "";
while ($row = mysqli_fetch_assoc($result))
{
if ($outp != "") {$outp .= ",";}
$outp .= '"preis":"' . $row["preis"] . '",';
$outp .= '"name":"'. $row["name"] . '"}';
}
$outp ='{"records":['.$outp.']}';
echo($outp);
}
?>
App.js
var url = "http://server/data/data.php?callback=JSON_CALLBACK"
$http.jsonp(url)
.success(function(data){
console.info(data.found);
});
Теперь у меня синтаксическая ошибка: "SyntaxError: неожиданный токен: ':'"
Спасибо за вашу помощь
Не создавайте JSON путем объединения строк вручную. В PHP уже много лет существует json_encode.
Теперь я использую json_encode, и похоже, что SyntaxError больше нет. Но я получаю ошибку 404 при запуске js ... Даже php сообщает правильные данные. Я могу указать свой URL, например, jsonformatter.org. И там написано, что это действительный json. Вопрос, который вы указали здесь как дубликат, мне не помогает. Есть другие предложения?
404 просто означает, что вы ошиблись с URL-адресом в дополнение к любым другим проблемам, которые у вас есть.
Но я могу добраться до URL-адреса. Вот почему мне интересно, почему там написано 404 ...






Не создавайте JSON самостоятельно. Попробуйте вместо этого. Главное, просто создайте массив так, как вам нравится, а затем используйте json_encode()
$result = [];
while ($row = mysqli_fetch_assoc($result))
{
$result[] = $row;
}
echo json_encode($result);
На данный момент это помогло мне. Похоже, что объект json теперь правильный. Но я всегда получаю ошибку 404. похоже, я не могу получить данные. Но я могу открыть URL-адрес в своем браузере и просмотреть данные.
«Я прочитал, что должен использовать jsonp, иначе я не получу данные». - Нет. Вам нужно выполнить что-нибудь, чтобы обойти одну и ту же политику происхождения, если вы хотите использовать Ajax для разных источников. JSONP - это грязный хакер, позволяющий добиться этого. Теперь у нас есть CORS. Используйте CORS.