加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net jquery ajax json:交换数据的简单例子

发布时间:2020-12-16 07:18:21 所属栏目:asp.Net 来源:网络整理
导读:(在两个回复帖子的帮助下解决问题 – 见下文) 我将非常感谢帮助获取在浏览器(使用JavaScript / JQuery)和ASP.NET(使用Visual Studio 2010)之间交换数据JSON数据的简单示例. 当我单击按钮时,执行以下操作: script type="text/javascript" bClick = function
(在两个回复帖子的帮助下解决问题 – 见下文)

我将非常感谢帮助获取在浏览器(使用JavaScript / JQuery)和ASP.NET(使用Visual Studio 2010)之间交换数据JSON数据的简单示例.

当我单击按钮时,执行以下操作:

<script type="text/javascript">
    bClick = function () {
        var myData = { "par": "smile" };
        alert("hi "+myData.par);
        $.ajax({
            url: "ericHandler.ashx",data: myData,dataType: 'json',type: 'POST',contentType: 'application/json; charset=utf-8',success: function (data) { alert("DIDit = " + data.eric); },error: function (data,status,jqXHR) { alert("FAILED:" + status); }
        });
    }
</script>

在Visual Studio中,我有以下与ashx文件关联的代码.当我运行它并单击按钮时,一切都按预期工作,除了我没有看到myData传递给C#代码 – 我在调试器中查看context.Request.QueryString并显示“{}”.

我见过使用的例子

string stringParam = (string)Request.Form("stringParam");

但似乎没有定义Visual Studio“请求”.我想做的就是看到数据双向移动,而我似乎只有一半.任何帮助,将不胜感激.

–C#代码 –

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace CSASPNETSerializeJsonString
{
/// <summary>
/// Summary description for ericHandler
/// </summary>
public class ericHandler : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        string rq = context.Request.QueryString["par"];

        context.Response.ContentType = "application/json";
        context.Response.Write("{"eric":"12345"}");
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

}

* 解决
首先,如果要将一些表单参数从JavaScript发送到ASP.NET,则应在下面的第二篇文章中使用ajax调用,并且不要对数据使用stringify.换句话说,如果不指定发送的数据是json,则缺少任何规范默认为’application / x-www-form-urlencoded’).这将导致对象的字段以“url”格式附加(field = X& field2 = Y& field3 = Z ..),因此在ASP.NET中使用Request.Form [“field”]显示.

其次,如果你真的想发送JSON数据,那么指定这个类型就是发送的内容(就像我上面所做的那样)并在接收端使用InputStream.然后需要进一步解析所接收的字符串以获得字段值.

在我的示例中,我发送回JSON数据,将其“手动”编码为字符串.我相信有一个JSON序列化例程,以便可以发送C#对象.

解决方法

其他资源建议删除contentType:’application / json;来自AJAX调用的charset = utf-8’:

$.ajax({ 
            url: "ericHandler.ashx",jqXHR) { alert("FAILED:" + status); } 
        });

读取服务器端的值:

string myPar = context.Request.Form["par"];

你也可以尝试:

string json = new StreamReader(context.Request.InputStream).ReadToEnd();

这里提到的是:https://stackoverflow.com/a/8714375/139917

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读