JSONP в Angularjs

Я хочу получить данные из моей базы данных в свой 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: неожиданный токен: ':'"

Спасибо за вашу помощь

«Я прочитал, что должен использовать jsonp, иначе я не получу данные». - Нет. Вам нужно выполнить что-нибудь, чтобы обойти одну и ту же политику происхождения, если вы хотите использовать Ajax для разных источников. JSONP - это грязный хакер, позволяющий добиться этого. Теперь у нас есть CORS. Используйте CORS.

Quentin 18.05.2018 16:23

Не создавайте JSON путем объединения строк вручную. В PHP уже много лет существует json_encode.

Quentin 18.05.2018 16:24

Теперь я использую json_encode, и похоже, что SyntaxError больше нет. Но я получаю ошибку 404 при запуске js ... Даже php сообщает правильные данные. Я могу указать свой URL, например, jsonformatter.org. И там написано, что это действительный json. Вопрос, который вы указали здесь как дубликат, мне не помогает. Есть другие предложения?

Fabian 20.05.2018 11:09

404 просто означает, что вы ошиблись с URL-адресом в дополнение к любым другим проблемам, которые у вас есть.

Quentin 20.05.2018 12:20

Но я могу добраться до URL-адреса. Вот почему мне интересно, почему там написано 404 ...

Fabian 20.05.2018 12:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
32
1

Ответы 1

Не создавайте JSON самостоятельно. Попробуйте вместо этого. Главное, просто создайте массив так, как вам нравится, а затем используйте json_encode()

$result = [];
while ($row = mysqli_fetch_assoc($result))
{
    $result[] = $row;
}

echo json_encode($result);

На данный момент это помогло мне. Похоже, что объект json теперь правильный. Но я всегда получаю ошибку 404. похоже, я не могу получить данные. Но я могу открыть URL-адрес в своем браузере и просмотреть данные.

Fabian 20.05.2018 13:04

Другие вопросы по теме