来自url的Angularjs json不起作用,但在本地工作
Posted
技术标签:
【中文标题】来自url的Angularjs json不起作用,但在本地工作【英文标题】:Angularjs json from url doesn't work, but works locally 【发布时间】:2015-11-04 14:33:57 【问题描述】:我试图使用$http.get
。该页面仅在我提供的 url 是本地 'vehicles.json
' 时才有效但是当我提供 url 时,它会吐出一个空白页面。有人可以帮我理解我的错误吗?
【问题讨论】:
打开控制台并修复错误。然后使用 $http 的 jsonp 方法。 看起来像 CORS 问题 @dfsq 服务器的 url 没有 jsonp 回调。我还应该尝试使用 jsonp 方法而不是 $http 吗? @MartinScore 你可以去 jsonp 请求 你为什么要使用&format=jsonp
?无论如何,这就是你需要做的:If (API supports JSONP?) use JSONP else if (CORS supported?) use GET JSON(API url) else create server side proxy and GET JSON(proxy url)
.
【参考方案1】:
你必须替换这一行:
$scope.vehicle = data.['get_vehicles'];
为此:
$scope.vehicle = data['get_vehicles'];
如果你在你的 Plunker 中修改它,它将起作用。
我希望这能解决你的问题。
【讨论】:
你检查程序是否是CORS?要检查它,您可以打开控制台(Chrome 中的 F12)并查看是否出现一些消息,例如“XMLHttpRequest 无法加载 domain.example。Access-Control-Allow-Origin 不允许来源 domain.example。”如果您的问题是这样,您可以使用禁用安全性 (***.com/questions/3102819/…) 来转换您的 chrome以上是关于来自url的Angularjs json不起作用,但在本地工作的主要内容,如果未能解决你的问题,请参考以下文章
如何在angularjs中通过ajax显示来自url的json数组
当我在 Angularjs 中绑定来自响应的数据时,引导多选不起作用
AngularJS - 为啥更改 url 地址时 $routeProvider 似乎不起作用并且我收到 404 错误
将 JSON 从 AngularJS 传递到 Springboot RestController 不起作用
使用 Express/Passport、AngularJS 和 ensureLoggedIn 的身份验证和路由在“/”url 上不起作用