桌面版的Web应用程序可以访问REST API,iOS版本不能

时间:2016-01-17 04:21:46

标签: ios cordova rest meteor jsonp

我正在使用Cordova构建Meteor应用程序,我正在通过JSONP访问WordPress REST API。它在Web应用程序的桌面版本上完全正常,但在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不起作用)。

1 个答案:

答案 0 :(得分:0)

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

App.accessRule("*");

/mobile-config.js

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