来自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 上不起作用

尝试从我将 lat & long 数据放入的 URL 中获取 JSON 时脚本不起作用