Angular JSON работает только с локальными файлами JSON, но не с URL

0

Я только что познакомился с Angularjs, и я пытался использовать $ http.get. Страница работает только в том случае, если URL, который я даю, является локальным "calender.json". Но когда я даю URL-адрес, он выплескивает пустую страницу. Может ли кто-нибудь помочь мне понять мою ошибку?

  • 0
    Это проблема CORS, проверьте вашу консоль ..
  • 0
    Может потребоваться использовать запрос jsonp для COR.
Показать ещё 4 комментария

1 ответ

2

Как указывалось в комментариях к вашему вопросу, это вопрос CORS. Чтобы легко решить эту проблему, вы можете изменить свой $http.get() на $http.jsonp(). Однако это само по себе не решит проблему. Вам также потребуется настроить URL-адрес, добавив еще один параметр запроса, например (используя предоставленный вами URL-адрес): https://ssl.uh.edu/calendar/api/?view=7day&format=json&distinct=1&callback=JSON_CALLBACK

Обратный вызов = JSON_CALLBACK сообщает серверу, что вы запрашиваете, что вы хотите, чтобы он обернул ответ JSON в функции с именем JSON_CALLBACK, которая является специальным угловым ключевым словом. Ознакомьтесь с документами для получения дополнительной информации: https://docs.angularjs.org/api/ng/service/ $ http

Версия tl; dr: измените $http.get("https://ssl.uh.edu/calendar/api/?view=7day&format=json&distinct=1") на $http.jsonp("https://ssl.uh.edu/calendar/api/?view=7day&format=json&distinct=1&callback=JSON_CALLBACK")

  • 0
    хороший улов, что это на самом деле служит JSONP. Стоит отметить, однако, что строка JSON_CALLBACK является просто заполнителем для внутренне созданного имени обратного вызова
  • 1
    Да, я пытался указать, что это было особенным, но не хотел касаться этого. Спасибо что подметил это.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню