我刚刚接触 Angularjs,并尝试使用 $http.get。仅当我提供的 url 是本地“calender.json”时,该页面才有效,但是当我提供 url 时,它会显示一个空白页面。有人可以帮助我理解我的错误吗?
最佳答案
正如其他人在对您的问题的评论中指出的那样,这是一个 CORS 问题。要轻松解决此问题,您可以将 $http.get()
调用更改为 $http.jsonp()
。然而,仅靠这一点并不能解决问题。您还需要通过添加另一个查询参数来调整 url,如下所示(使用您提供的 url):
https://ssl.uh.edu/calendar/api/?view=7day&format=json&distinct=1&callback=JSON_CALLBACK
callback=JSON_CALLBACK 告诉服务器您正在查询,您希望它将 JSON 响应包装在名为 JSON_CALLBACK 的函数中,这是一个特殊的 Angular 关键字。查看文档以获取更多信息:https://docs.angularjs.org/api/ng/service/ $http
tl;博士版本:
将 $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")
关于javascript - Angular JSON 仅适用于本地 json 文件,不适用于 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31441168/