PhoneGap中文网

 找回密码
 立即注册
查看: 12183|回复: 3
打印 上一主题 下一主题

新人的疑惑,求解答。

[复制链接]

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
跳转到指定楼层
楼主
发表于 2015-9-11 15:49:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 luoyehanfei 于 2015-9-11 15:51 编辑

嗯,这问题大概谷歌,百度了上百次,始终没找到我想要的结果,故所以来求助了,希望大神们不吝赐教(就是因为论坛回答率很低,所以csdn都不怎么用了)

直接上问题,上问题前先说说我的理解看对不对。

使用方式:
1、app为本地app,所有的资源 html页面、css、js文件均放在phonegap打包文件中
       好处:速度快,流量占用较少。
2、app全部放在服务器,所有的页面均放在服务器,也就是相当于做网站,和网站不同的区别就是加了一个外壳,美曰其名:xxxAPP,其次,调用phonegap的插件,可以调用手机的原生功能而已,熟悉了phonegap的api即可,开发方式和以前开发网站一样,如asp.net。


疑问:针对第二种方式,我目前没有任何疑问,主要是1的方式、那么问题来了!

1、一般是采取1的方式还是2的方式来使用phonegap的?又或者混合?
2、(重点)在采取方式1时,如何使用cookie,session等数据,因为涉及到跨域了, 用jsonp是可以解决跨域问题。看例子好说话

假设服务器的代码如下:  

  1. public class HomeController : Controller
  2.     {
  3.       public ActionResult Index()
  4.       {
  5.            Session["a"] = "已经成功登录";
  6.            return Json(new { name = "123", resut = "456" }, JsonRequestBehavior.AllowGet);
  7.       }

  8.         public ActionResult Get()
  9.         {
  10.       string ret = "";
  11.       if (Session["a"] != null)
  12.       {
  13.          ret = Session["a"].ToString();
  14.       }
  15.       else
  16.       {
  17.          ret = "无状态";
  18.       }
  19.       return Json(new { name = "123", resut = ret }, JsonRequestBehavior.AllowGet);
  20.         }
  21.     }
复制代码
备注:xxx.xxx.xxx我已经允许全站jsonp请求了。
通过jsonp   访问http://xxx.xxx.xxx/Home/Index时,在服务器设置一个Session["a"]

然后在发起第二次请求 http://xxx.xxx.xxx/Home/Get时,这个时候实际上a这个状态还是空的。这样的话,服务器是无法验证客户端是否登录了的,返回的Json.Resut依然是无状态(我刚刚测试过了)


那么假设我在第一次请求登录的时候:服务器返回一个加密的key,然后由客户端自由存储(如用全局变量、localstorage......)起来,然后每次请求服务器时都带上这个key,那么问题也来了


$http.post("xxx.xxx.xxx",myKey) 的时候,是不是我每次都得带上第一次登录请求时所返回的key,

然后服务器端的代码还得改成这样:
  1. public ActionResult Get()
  2. {
复制代码
然并卵:服务器端涉及到的方法可能成百上千个,虽然有办法自动的验证,但是始终感觉这样去做,是不是不那么合理呢???           客户端的每个请求都带上key,虽然也是经过简单的封装一个js方法就能做到。。。。。

           但是,我始终觉得不是那么合理似得。

          有实际项目经验的大神能帮忙解决这个困惑么,感激不尽。








回复

使用道具 举报

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
沙发
 楼主| 发表于 2015-9-11 15:55:31 | 只看该作者
然后服务器端的代码还得改成这样:
public ActionResult Get()
{
     if(Request["key"]!="")
     {
               bool ok=   ValiDateKey(Request["key"]);//去验证key是否可以登录
               if(ok)
               {
                       //业务代码.........................
               }

    }
}



补上。不知道为何显示不了这段
回复 支持 反对

使用道具 举报

2

主题

12

帖子

68

积分

注册会员

Rank: 2

积分
68
板凳
发表于 2015-9-11 17:29:14 | 只看该作者
我个人不是负责web的,但同事给我的web项目好像使用ajax解决跨域问题的,而且使用的是HTML5,HTML5
好像有个新的保存方式可以存5M的数据,希望对你有用吧
回复 支持 反对

使用道具 举报

8

主题

27

帖子

113

积分

注册会员

Rank: 2

积分
113
地板
发表于 2015-9-13 15:54:58 | 只看该作者
和楼主很像,我也是搞C# BS开发的,最近也在学phonegap,有很地方不明白,有空交流下:qq:524120915
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2025-1-4 20:28 , Processed in 0.046288 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表