【问题标题】:Desktop version of web app can access REST API, iOS version can't桌面版网络应用可以访问 REST API,iOS 版不能
【发布时间】:2016-04-22 11:06:59
【问题描述】:

我正在使用 Cordova 构建一个 Meteor 应用程序,并且我正在通过 JSONP 访问一个 WordPress REST API。它在网络应用程序的桌面版本上运行良好,但在 iOS 模拟器和我的设备上,我收到一个错误:

加载资源失败:服务器响应状态为 401(未授权)

我不明白为什么服务突然需要某种授权。在桌面上,我可以将一个全新的浏览器会话指向有问题的 URL,而无需登录任何内容,而且效果很好。

我错过了一些简单的东西吗?

编辑:

AJAX 调用如下:

  const apiBaseUrl = '<censored>';

  function getRecentPosts(callback) {
    $.ajax(`${apiBaseUrl}/get_recent_posts`, {
      dataType: 'jsonp'
    }).done(function (data) {
      console.log('done, firing callback');
      callback(data.posts);
    });
  }

我确实检查了,jQuery.ajax 确实存在于设备上(我认为可能与我的应用程序一起打包的 jQuery 不起作用)。

【问题讨论】:

  • 如果您可以在桌面上打开新的浏览器,那么我怀疑这与您用于访问移动应用程序上的 API 的实现有关。也许您将其指向不正确的端点?我建议发布您的网络代码。 :)

标签: ios cordova rest meteor jsonp


【解决方案1】:

这是一个与 Meteor 相关的小众问题。解决方案是添加这一行:

App.accessRule("*");

/mobile-config.js

http://docs.meteor.com/#/full/App-accessRule

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多