首页 > 其他 > 详细

$http 服务

时间:2014-08-09 13:22:47      阅读:297      评论:0      收藏:0      [点我收藏+]

$http 就是angular提供的Ajax 服务 

内部还涉及到了

$httpBackend, $httpProvider,

 $q  (angular的promise),

 $cacheFactory (angular的cache机制) 等等

 

昨天第一次使用就遇到了在POST请求后台ashx无法后去data的悲剧.

翻了一下源码

原来问题出在 Content-type 上

angular 默认的 Content-type 是 application/json 而我们平常通常是用 application/x-www-form-urlencoded (jQuery也是这个)

 var CONTENT_TYPE_APPLICATION_JSON = {‘Content-Type‘: ‘application/json;charset=utf-8‘};
 headers: {
      common: {
        ‘Accept‘: ‘application/json, text/plain, */*‘
      },
      post:   shallowCopy(CONTENT_TYPE_APPLICATION_JSON), //shallowCopy是浅拷贝
      put:    shallowCopy(CONTENT_TYPE_APPLICATION_JSON), 
      patch:  shallowCopy(CONTENT_TYPE_APPLICATION_JSON)
    },

 // transform outgoing request data
    transformRequest: [function(d) {
      return isObject(d) && !isFile(d) && !isBlob(d) ? toJson(d) : d; //data 会被处理成json
    }],

在.ashx 的情况下,如果我们调用 content.Request["key"] , 是没办法获取到data 

我们可以用原始的方式来解决这个问题 

 StreamReader reader = new StreamReader(context.Request.InputStream, Encoding.UTF8);
 string json = reader.ReadToEnd(); //这个就是data了,是json各式哦

 

未完待续...

 

 

 

 

 

 

 

 



 



 

$http 服务,布布扣,bubuko.com

$http 服务

原文:http://www.cnblogs.com/keatkeat/p/3900820.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!