码迷,mamicode.com
首页 > Web开发 > 详细

关于sencha touch 的JSONP跨域请求的学习研究

时间:2015-08-14 17:03:08      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

此篇文章是对自己在研究学习sencha touch的过程中的点滴记录,主要是JSONP的跨域请求这方面,对于何为是跨域概念还有不熟悉的,可以自己问下度娘。

先上张图:技术分享

我要完成的功能就是表格下拉刷新,并发送请求到我自己写的服务程序端,由于服务程序和此SENCHA的程序不再一个域下,总是出现请求出错(提示的大概信息就是跨域的问题)。这两天真是被这个问题折磨的很久,由于没接触过sencha touch 的JSONP,开始也是一头雾水,也看了好多的资料。最终理解了SENCHA里的jsonp的请求模式。

大体是这个含义(看图):技术分享

看那个 request url ,当在用jsonp模式下请求的时候,sencha 会自动生成个callback=ext.data.jsonp.callback3 的参数,这是个回调,别的你不用关心,只要在服务端返回类似

 Ext.data.JsonP.callback2([{"Name":"李阳1","Age":"33","PotoUrl":"http://img5.duitang.com/uploads/item/201408/05/20140805170730_B5czA.jpeg"}])  这样的结果,返回的类型应该是text/javascript,也就是返回的是一个javascript的方法体,这样当请求完毕,服务器返回该结果就会自动以脚本的形式注入到回调中去执行。这也就是我所能理解的。

下面可以贴下服务端代码:我用的是asp.net web api 做的服务

 [HttpGet]
  public HttpResponseMessage GetAllContacts(string _dc,string page,string start ,string limit,string callback)//支持JSONP格式的数据方法
        {
          Person[] Persons = new Person[]
           {
   new Person() { Name = "李阳1", Age = "33",PotoUrl="http://img5.duitang.com/uploads/item/201408/05/20140805170730_B5czA.jpeg" }
                         };
          string content = string.Format("{0}({1})", callback, JsonConvert.SerializeObject(Persons));
          var response=  Request.CreateResponse(HttpStatusCode.OK, content);
          response.Content = new StringContent(content, Encoding.UTF8, "text/javascript");
          return response;
       }

 

关于sencha touch 的JSONP跨域请求的学习研究

标签:

原文地址:http://www.cnblogs.com/Y-X-DONG/p/4730498.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!