Angular JS $http.get 从 WP REST API 返回空数据,但仅在实际 iOS 设备上
Posted
技术标签:
【中文标题】Angular JS $http.get 从 WP REST API 返回空数据,但仅在实际 iOS 设备上【英文标题】:Angular JS $http.get returns empty data from WP REST API, but only on actual iOS device 【发布时间】:2016-01-29 22:15:55 【问题描述】:我正在制作一个使用 WP REST API V2 插件访问 Wordpress 网站的 Ionic 应用程序。鉴于我的控制器中的这段代码:
$http.get('http://www.greenfundsuriname.org/wp-json/wp/v2/posts/3701').then(function(response)
$log.log(response);
);
$http.get('http://www.greenfundsuriname.org/wp-json/wp/v2/posts/').then(function(response)
$log.log(response);
);
我在本地机器和 ios 模拟器中得到两个非常好的响应,请参阅:
在我的实际设备上,单个帖子工作正常,但帖子 URL 给了我一个空数组作为数据响应:
这怎么可能?
【问题讨论】:
设法在浏览器中获得相同的行为:codepen.io/lensco/pen/meKEqP(第一个按钮返回空数组响应,但 API URL 确实有内容) 你的代码笔对我来说似乎很好用。 显然这确实适用于其他几个人。我尝试增加 $http 超时,我验证了 JSON,我在不同(更快)网络的另一个地方尝试了它,它没有任何区别。 Posts API 路由在我的浏览器中运行良好,但通过 Angular $http 访问时返回一个空数组。其他 API 路由都很好。好吧,我会被诅咒的。 【参考方案1】:原来是请求中的一个标头导致了这种情况。由于我的操作系统语言设置为荷兰语,因此 Accept-Language 标题要求在 Wordpress 中提供荷兰语帖子。 Wordpress 正确返回了一个空数组。其他人 - 其操作系统设置为英语 - 获得所有英语 Wordpress 帖子。像这样解决它:
$http.get( url,
headers: 'Accept-Language': 'en-US,en;q=0.8,nl;q=0.6'
);
【讨论】:
以上是关于Angular JS $http.get 从 WP REST API 返回空数据,但仅在实际 iOS 设备上的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Angular 5 中的 url 下载 pdf 文件
Angular 4 和 Woocommerce API。 Http GET 有效,但 http POST 无效
Django:如何在 Jquery 中使用 $getJSON 或在 Angular.js 中使用 $http.get 接收 QuerySet?