Функция успеха AngularJS JSONP не работает - PullRequest
0 голосов
/ 31 октября 2018

Я хочу сделать междоменный запрос к файлу JSON, находящемуся на другом компьютере с моего компьютера. Я использовал приведенный ниже код, чтобы сделать этот звонок

 $http.jsonp('http://10.2.1.1/testdata/samplefile.json?callback=jsonpcallback').success(function (data) {
                    var d = data;
                }).error(function (error) {
                    console.log(error);
                });

Но код всегда входит в функцию error с ошибкой undefined. Я создал файл для возврата json как объекта js, так как мой тип возвращаемого значения - json. Что-то не так с этим форматом или что-то отсутствует? угловая версия 1.4.9.

//samplefile.json 
    var data = {
        "FileType": 0,
        "CurrentGuid": "9b613045-4e5c-4305-81b2-a95a8d82bc5r",
        "LastPublishedDateTime": "2018-10-29T14:41:49.149615Z",
        "Cultures": {
            "LastPublishedDate": "2018-10-29T14:39:10.443742Z",
            "CurrentGuid": "7f116191-18c1-4204-b8cf-3d2a0d5a2drd",
            "ChangeType": 1
        }   
    };

1 Ответ

0 голосов
/ 31 октября 2018

Метод $http.jsonp работает только с серверами, которые возвращают функцию javascript, названную параметром обратного вызова.

По соглашению сервер, предоставляющий данные JSON, предлагает запрашивающему веб-сайту назвать функцию JSONP, обычно используя имя jsonp или callback в качестве имени поля именованного параметра запроса, в своем запросе к серверу, например,

<script type="application/javascript"
        src="http://server.example.com/Users/1234?callback=parseResponse">
</script>

В этом примере полученная полезная нагрузка будет:

parseResponse({"Name": "Foo", "Id": 1234, "Rank": 7});

Для получения дополнительной информации см. Википедия - JSONP

...