api - 为什么客户端 HTTP.get() 调用在 Cordova (Meteor 0.9.3) 中不起作用?

标签 api cordova meteor

更新的问题: 简单的客户端 HTTP.get() 调用在 iOS 模拟器上不起作用。相同的调用正在获取数据,并且它在浏览器中的模板中完美显示(localhost:3000) 早些时候,我认为这与本地集合有关,但问题实际上是 HTTP.get 调用,它没有在 cordova(ios 模拟器或设备)中返回任何数据。

请注意,我的整个代码仅在客户端 if (Meteor.isClient) {} 上,而 if (Meteor.isCordova) {} 中没有任何内容。

原始问题:是否可以在 Cordova (Meteor 0.9.3) 中定义本地集合? 我的应用程序中有一个本地(仅限客户端)集合,如下所示: Items = new Meteor.Collection(null);

此本地集合临时从外部 API 获取数据(通过添加“meteor add http”并使用 HTTP.get() ),并将此内容推送到模板。这通过助手( return Items.find() )完美地出现在 localhost:3000 上的浏览​​器模板中,但是当我运行“meteor run ios”时,数据没有在 iOS 模拟器中加载。

首先,是否有可能期望本地集合在 Cordova 内工作? 是否应该在内部定义: Meteor.isCordova({ })? 是否需要添加 cordova 特定的包? 我认为在这种情况下,本地收集是必要的,因为数据是根据用户的设备位置检索的,并且仅与当前 session 相关。

如有任何想法,我们将不胜感激。

(这里是 meteor 菜鸟,抱歉,如果这听起来很愚蠢!)

编辑:在服务器和客户端上定义的集合可以在浏览器和 iOS 模拟器上运行。所以问题只出在本地集合上。

最佳答案

@imslavko
你确实是对的!这是我进行 API 调用的服务器上的 CORS 问题。 经过几天的绞尽脑汁,我最终发现服务器没有 Access-Control-Allow-Origin: * 用于简单的 GET/POST 请求。

感谢您帮助解决这个问题。

事实证明 Cordova 与此无关。所有 HTTP.get() 调用都可以在 Cordova 内完美运行,包括本地集合。

关于api - 为什么客户端 HTTP.get() 调用在 Cordova (Meteor 0.9.3) 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26089665/

相关文章:

cordova - 无法加载网页,错误为 : Frame load interrupted

javascript - Meteor:禁用热代码推送

laravel - postman 返回 HTML 而不是 JSON?

python - 在调查猴子中包含图像

cordova - Ionic 弹出窗口中的自定义关闭按钮

Angular:当凭据标志为真时,不能在 '*' header 中使用通配符 'Access-Control-Allow-Origin'

android - Meteorjs - Android 应用程序包未正确签名错误

javascript - meteor 延迟 - 对 react 性的影响

javascript - 在 API 调用后重新加载 Angular 指令以重新绘制 morris.js 图表

javascript - 谷歌翻译/基本 Javascript 问题