繁体   English   中英

将jquery json传递给asp.net httphandler

pass jquery json into asp.net httphandler

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

只是不明白我做错了..我一直在寻找几十个类似的问题,但仍然有误解......当我从JS调用CallHandler函数时,我总是得到“请求失败”警报。 请帮我。

JS / jQuery的:

function CallHandler() {
    $.ajax({
        url: "DemoHandler.ashx",
        contentType: "application/json; charset=utf-8",
        type: 'POST',
        dataType: "json",
        data: [{"id": "10000", "name": "bill"},{"id": "10005", "name": "paul"}],
        success: OnComplete,
        error: OnFail
    });
    return false;
}

function OnComplete(result) {
    alert(result);
}
function OnFail(result) {
    alert('Request Failed');
}

asp.net c#代码背后:

public void ProcessRequest(HttpContext context)
{
  JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
  string jsonString = HttpContext.Current.Request.Form["json"];

  List<Employee> emplList = new List<Employee>();
  emplList = jsonSerializer.Deserialize<List<Employee>>(jsonString);

  string resp = "";
  foreach (Employee emp in emplList){
  resp += emp.name + " \\ ";
  }
  context.Response.Write(resp);
}

public class Employee
{
  public string id { get; set; }
  public string name { get; set; }
}
1 个回复

尝试

data: JSON.stringify([{id: "10000", name: "bill"},{id: "10005", name: "paul"}])

编辑我从属性名称中删除了引号

此外,需要以其他方式读取JSON字符串

string jsonString = String.Empty;

HttpContext.Current.Request.InputStream.Position = 0;
using (StreamReader inputStream = new StreamReader(HttpContext.Current.Request.InputStream))
{
     jsonString = inputStream.ReadToEnd();
}

工作解决方案

public void ProcessRequest(HttpContext context)
{
    var jsonSerializer = new JavaScriptSerializer();
    var jsonString = String.Empty;

    context.Request.InputStream.Position = 0;
    using (var inputStream = new StreamReader(context.Request.InputStream))
    {
        jsonString = inputStream.ReadToEnd();
    }

    var emplList = jsonSerializer.Deserialize<List<Employee>>(jsonString);
    var resp = String.Empty;

    foreach (var emp in emplList)
    {
        resp += emp.name + " \\ ";
    }

    context.Response.ContentType = "application/json";
    context.Response.ContentEncoding = Encoding.UTF8;
    context.Response.Write(jsonSerializer.Serialize(resp));
}

public class Employee
{
    public string id { get; set; }
    public string name { get; set; }
}

public bool IsReusable
{
    get
    {
        return false;
    }
}
2 ASP.NET HttpHandler是否会超时

我已经实现了一个ASP.NET http处理程序。 在我看来,没有办法设置超时,例如,如果处理程序已运行超过X秒,则不提供结果。 我在这里是正确的还是有办法实现ashx处理程序的超时? ...

3 ASP.NET httphandler中的异步Web请求

我有以下情况,如果可能的话,我想澄清一下。 我有一个JavaScript函数,可对处理程序(.ashx)文件进行ajax调用。 javascript函数不需要返回值。 处理程序将发布一些数据并完成操作。 处理程序文件向Bitly,Facebook和Twitter发出ASYNC Web ...

5 ASP.NET HttpHandler和WebResource.axd问题

我需要一个简单的HttpHandler来处理ASP.NET项目中特定的不存在的路径。 我正在使用sitefinity4。我编写了处理程序,但是每当我尝试运行该网站时,我都会遇到一个令人沮丧的错误 我将处理程序放在配置的system.web部分中,但看起来像VS2010一样,因为它是内 ...

6 指定ASP.NET Http Handler的确切路径

我使用Http Handler动态生成XML / Google站点地图,因此我不需要手动维护XML文件。 我已将我的Http Handler映射到我的web.config中的“sitemap.xml”,如下所示: 它工作得很好。 现在,www.mywebsite.com / si ...

7 如何将数据发布到ASP.NET HttpHandler?

我正在尝试将大量数据发送到HTTP处理程序。 由于URL长度限制,我无法使用GET发送它,因此我决定将其发布。 问题是我无法掌握这些价值。 context.Request.Form显示它具有0个项目。 那么,有什么方法可以将数据发布到HttpHandler? ...

8 WCF性能与简单的ASP.NET HttpHandler

TL; DR ver :WCF服务的行为(尽管似乎已配置为在HTTP上实现最大吞吐量)比朴素的ASP.NET处理程序实现慢4倍 UPDATE1 : 切换到发布模式和IIS(完全不表达)7.5更改了数字: ASP.NET:从15秒到6.7秒 WCF:从60秒到13. ...

9 ASP.NET HttpHandler可以处理http 400 - 错误请求吗?

我们有一个HttpHandler,它直接处理来自自定义客户端软件的HTTP上的二进制帖子。 客户端软件偶尔发送数据,导致IIS 7响应400 - 错误请求。 由于“400 Bad Request”的特殊之处在于HTTP.SYS在内核模式下透明地处理它而不通知用户模式,因此不会引发任何错误在A ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM