asp.net jquery ajax post 获取 ashx文件数据 主要是前台怎么传,后台怎么返回数据,好像返回的数据和前台的类型要相同还是?

一条牛 2016-05-27 06:04:22
主要是前台怎么传,后台怎么返回数据,好像返回的数据和前台的类型要相同还是? 是不一个要参数? 希望有前台代码,和后台代码,我试过好多次 都是空值
...全文
298 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
duangufei 2016-06-02
  • 打赏
  • 举报
回复
return 是没有值的
duangufei 2016-06-02
  • 打赏
  • 举报
回复
ajax接收返回值是需要context.response.write()的 根据返回类型的不同 修改一下返回值
一条牛 2016-06-01
  • 打赏
  • 举报
回复
var p = { body: body, total_fee: total_fee, auth_code: auth_code }; jQuery.ajax({ url: ServerUrlPrefix() + 'GetReceivedStatus.ashx', type: 'POST', data: p, dataType: 'json', success:function(data){ alert(data); } 这些是懂 其他不知道可以不? 我试一下
  • 打赏
  • 举报
回复
这个例子是使用了 GET 方式来访问 ashx的。如果前端要使用 post 方式,那么就可以写
        var p = {
            body: body,
            total_fee: total_fee,
            auth_code: auth_code
        };
        jQuery.ajax({
            url: ServerUrlPrefix() + 'GetReceivedStatus.ashx',
            type: 'POST',
            data: JSON.stringify(p),
            dataType: 'text',
......
或者
        var p = {
            body: body,
            total_fee: total_fee,
            auth_code: auth_code
        };
        jQuery.ajax({
            url: ServerUrlPrefix() + 'GetReceivedStatus.ashx',
            type: 'POST',
            data: p,
            dataType: 'json',
  ......
这类形式。 对于第一种,适合于直接在服务器端使用
  using (var st = new StreamReader(context.Request.InputStream, Encoding.UTF8))
{
     var input =st.ReadToEnd();
    ............
这种形式提交数据,它可以提交任意嵌套深度、比较复杂的对象数据。 对于第二种,你可以在服务器端使用普通的 req.Form["id"] 之类的方式来获得一组 post 字段数值,可以提交比较简单的对象数据。
  • 打赏
  • 举报
回复
例如网页需要访问自己企业微信公众号服务网站,获取某个 openid 对应的用户信息,可以这样写
    function GetUserInfoByOpenId(id, callback, error) {
        if (error === void 0) { error = null; }
        var url = “http://www.abc.com/weixin/GetUserInfo.ashx?openid=' + id;
        jQuery.ajax({
            url: url,
            type: 'GET',
            dataType: 'json',
            success: function (res) {
                callback(res);
            },
            error: function (e) {
                if (error != null)
                    error(e);
            }
        });
    }
这里使用异步方式,返回了一个具有如下接口模式 interface UserInfo { subscribe: number, openid: string, nickname: string, sex: number, language: string; city: string; province: string, country: string, headimgurl: string, subscribe_time: number, unionid: string, remark: string, groupid: number } 的 javascript 对象。 在ashx中,你可能这这样写
using System.Web;
using WxPayAPI;

namespace My微信网站
{
    public class GetUserInfo : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            var req = context.Request;
            var openid = req.QueryString["openid"];
            context.Response.AddHeader("Access-Control-Allow-Origin", "*");
            string url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN";
            WeixinUserInfo usr = 查询微信公众平台获取用户信息(string.Format(url, weixinConfig.ACCESS_TOKEN, openid));
            result = JsonConvert.SerializeObject(usr);    //将 .net 对象序列化
            context.Response.Write(result);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}
这样,一个 WeixinUserInfo 类型的实体对象,在浏览器端就转换为一个 javascript 对象(使用变量res引用)。
jeje 2016-05-30
  • 打赏
  • 举报
回复



后台用StringBuilder拼一个Json格式的字符串返回到前台验证Json格式可以去
http://www.bejson.com/


前台直接用date. Code就可以了
一条牛 2016-05-30
  • 打赏
  • 举报
回复
这样没有反应
一条牛 2016-05-30
  • 打赏
  • 举报
回复
后台返回 public string linst(HttpContext context) { return "123e12e"; }
一条牛 2016-05-30
  • 打赏
  • 举报
回复
function sdasd() { var ajaxUrl = "/Ajax/System/tblVersionAjax.ashx?Action=linst"; $.ajax({ type: "post", url: ajaxUrl, datatype: "json", async: false, success: function (msg) { if (msg != "") { if (msg != "") { alert(msg); } else { alert(msg+"111"); } } } }); }
  • 打赏
  • 举报
回复
贴出你的代码,而不是都是文字
  • 打赏
  • 举报
回复
所谓前端,就是 javascript 对象。 而在你的 ashx,其实就是 json 序列化字符串。可以使用 .net framework 内置的方式或者使用 Newtonsoft.json 来直接处理序列化、反序列化。

62,270

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧