luoyehanfei 发表于 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是可以解决跨域问题。看例子好说话

假设服务器的代码如下:

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

      public ActionResult Get()
      {
      string ret = "";
      if (Session["a"] != null)
      {
         ret = Session["a"].ToString();
      }
      else
      {
         ret = "无状态";
      }
      return Json(new { name = "123", resut = ret }, JsonRequestBehavior.AllowGet);
      }
    }备注: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,

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

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

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








luoyehanfei 发表于 2015-9-11 15:55:31

然后服务器端的代码还得改成这样:
public ActionResult Get()
{
   if(Request["key"]!="")
   {
               bool ok=   ValiDateKey(Request["key"]);//去验证key是否可以登录
               if(ok)
               {
                     //业务代码.........................
               }

    }
}



补上。不知道为何显示不了这段

bot攻略 发表于 2015-9-11 17:29:14

我个人不是负责web的,但同事给我的web项目好像使用ajax解决跨域问题的,而且使用的是HTML5,HTML5
好像有个新的保存方式可以存5M的数据,希望对你有用吧

david.huang 发表于 2015-9-13 15:54:58

和楼主很像,我也是搞C# BS开发的,最近也在学phonegap,有很地方不明白,有空交流下:qq:524120915
页: [1]
查看完整版本: 新人的疑惑,求解答。