Javascript Angular JSON仅适用于本地JSON文件,而不适用于URL

Javascript Angular JSON仅适用于本地JSON文件,而不适用于URL,javascript,json,angularjs,Javascript,Json,Angularjs,我刚刚被介绍给Angularjs,我正在尝试使用$http.get。只有当我给出的url是本地的“calender.json”时,页面才会工作,但当我给出url时,它会弹出一个空白页面。有人能帮我理解我的错误吗 正如其他人在对您的问题的评论中指出的,这是一个CORS问题。要轻松解决此问题,可以将$http.get()调用更改为$http.jsonp()。然而,单凭这一点并不能解决问题。您还需要通过添加另一个查询参数(使用提供的url)来调整url: https://ssl.uh.edu/cale

我刚刚被介绍给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\u callback告诉服务器,您正在查询,希望它将JSON响应封装在名为JSON\u callback的函数中,这是一个特殊的关键字。查看文档了解更多信息:$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“

这是CORS发行的,检查控制台..可能需要使用jsonp请求CORs。
请求的资源上不存在“Access Control Allow Origin”标题。
您可能需要调整服务器或使用jsonp。由于
同源策略,使用ajax无法访问所有API。这一个没有启用CORS,如果它们不提供jsonp,您将需要使用代理来获取数据。另一方面…强烈建议将angular版本升级到更新的版本。自从1.02I今天发现,如果url是404,chrome有时会决定抛出一个跨源错误,因为找不到的页面也没有访问控制允许源标题以来,很多事情都发生了变化。因此,检查您试图获取的url是否确实存在是值得的。很好,它实际上为jsonp服务。值得注意的是,字符串
JSON\u CALLBACK
只是内部创建的回调名称的占位符。是的,我试图指定它是特殊的,但不想与之相切。感谢您指出这一点。我之所以提到它,是因为几天前我看到有人试图在静态脚本文件中使用该字符串来测试jsonp,但却不明白它为什么不起作用