Функция успеха angularjs jsonp не работает

Я хочу сделать междоменный запрос к файлу 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);
                });

Но код всегда входит в функцию ошибки с неопределенной ошибкой. Я создал файл для возврата 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
        }   
    };

Какая у вас версия angularjs? Вам может понадобиться использовать другой синтаксис

Aleksey Solovey 31.10.2018 11:55

его угловая версия 1.4.9

Monie corleone 31.10.2018 12:33
1
2
33
1

Ответы 1

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

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

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

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

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

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

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