Ionic,Phonegap,AngularJs:仿真时本地存储未定义键

布里欧克

我刚刚构建了一个简单的应用程序,该应用程序调用由symfony构建并由fos_oauth保护的rest api。

我有一个AuthService,该服务返回一个访问令牌,该令牌允许我的移动应用程序访问我的api。

它存储在本地存储中:

本地存储

在使用离子服务(类似于phonegap服务)的浏览器上,该应用程序运行正常,并且我可以访问本地存储的变量。在使用ios进行仿真时,它可以完美运行。但是当使用android模拟或使用phonegap应用程序在手机上显示我的应用程序时。我无法访问这些变量。这听起来很正常吗?

[phonegap] 404 http://ynd.dev/api/login?access_token=undefined

Android与Ios

index.html:

<!-- Utils -->
<script src="js/service/LocalStorageService.js"></script>

<!-- JS Config -->
<script src="js/functions.js"></script>
<script src="js/config/parameters.js"></script>

<!-- your app's js -->
<script src="js/app.js"></script>
<script src="js/config/routing.js"></script>
<script src="js/service/AuthService.js"></script>

LocalStorageService.js:

setObject: function(key, value) {
    $window.localStorage.setItem(key, JSON.stringify(value));
},
getObject: function(key) {
    return JSON.parse($window.localStorage.getItem(key) || '{}');
}

parameters.js:

// Resources
var domain = 'http://ynd.dev';
var public_id = '4_4spkzm1pubcw40og04okk4wogs0cc44wkgkkoco88k8cwgkwgs';
var secret = '28es09ymlcg0wgskgs4cso0co0ok0ww0gw8g0k8g4kcowckcco';

// Access token
var access_token = '';
var identity_token = '';

app.js:

var app = angular.module('ionicApp', ['ionic', 'ionic.utils', 'ngResource']);

app.run(function($ionicPlatform,$rootScope, $localStorage, $location, AuthService) {

  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }

    access_token = $localStorage.getObject('access_token');
    identity_token = $localStorage.getObject('identity_token');

    AuthService.token();

  });
  $rootScope.$on('$stateChangeStart', function (event, next) {

    access_token = $localStorage.getObject('access_token');
    identity_token = $localStorage.getObject('identity_token');

    AuthService.token();

    // IF no user logged
    if(isObjectEmpty(identity_token)){

      $location.path( "/login" );

    }

  });
});

AuthService:

这就是对象在本地存储的方式。

$localStorage.setObject('access_token', {
                            key: res.data.access_token,
                            type: 'anonymous',
                            expires_at: Date.now()+(res.data.expires_in*1000)
                        });

有什么想法或提示吗?

更新:(课程)

allow_origin: ['*'] 
allow_headers: ['*'] 
allow_methods: ['POST', 'PUT', 'GET', 'DELETE', 'OPTIONS']
布里欧克

它根本无法正常工作,因为模拟的应用程序无法访问本地主机。

第一个解决方案:

从在线主机调用api。

第二种解决方案:

而不是调用http:// localhost /调用IP(您可以使用ifconfig来获取它,我自己使用了ifconfig vboxnet0)。

对于虚拟主机,我还没有弄清楚。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ionic,Phonegap,AngularJs:仿真时本地存储未定义键

来自分类Dev

未定义本地存储

来自分类Dev

Firefox的本地存储未定义

来自分类Dev

ionic angularjs jqlite addclass未定义

来自分类Dev

从本地存储检索到对象方法后未定义?

来自分类Dev

本地存储未定义,即使已设置。离子性

来自分类Dev

ModelSim仿真-模块未定义

来自分类Dev

Angularjs / Ionic TypeError:无法读取未定义的属性“ then”

来自分类Dev

angularjs + ionic + php mysql(未定义不是函数)

来自分类Dev

使用本地头文件时未定义的引用

来自分类Dev

未定义键号时,Android Gson Json解析

来自分类Dev

未定义调度动作存储时的ngrx 8

来自分类Dev

当 <Edit> 数据来自 <List> 时,存储中未定义

来自分类Dev

键显示未定义

来自分类Dev

TypeError:无法读取未定义的属性“ open”(Phonegap和Ionic)

来自分类Dev

使用$ timeout调用angularjs函数时,“ this”(对象)未定义

来自分类Dev

在angularJs中访问对象时发生未定义的错误

来自分类Dev

angularjs这在使用$ .proxy时是未定义的

来自分类Dev

尝试访问AngularJS $ scope变量时未定义

来自分类Dev

PhoneGap:ReferenceError:未定义连接

来自分类Dev

Android Phonegap错误:未定义google

来自分类Dev

Android Phonegap错误:未定义google

来自分类Dev

FileTransfer未定义-AngularJS

来自分类Dev

AngularJS $ httpProvider未定义

来自分类Dev

AngularJS $ routeParams未定义

来自分类Dev

AngularJS:'未定义$ scope'

来自分类Dev

AngularJS:错误未定义

来自分类Dev

angularjs工厂未定义

来自分类Dev

angularjs 解析未定义