.net利用ajax返回后台数据

  .net网站开发中有时候需要前台获取后台的数据,这里我们讨论ajax技术。

  网上有很多方法都是引用ajax.dll,然后在C#中注册即可在js中引用。

  而IIS 7.0以上的版本需要在<system.webServer>的<handlers>节点下额外配置,详情见 http://www.jb51.net/article/40054.htm,否则可能会出错。

  我们也可以通过以下方法自己写ajax,项目中引用了jquery。

  

  js前端代码(范例):

$(function(){
        $.ajax({
            type: "post",
            url: "Default.aspx/PipeData",
            contentType: "application/json;charset=utf-8",
            dataType: "json",
            success: function (res) {
                var j=res.d;
            },
            error: function (xmlReq, err, c) {
                alert("error!!");
            }
        });
});
    

url:Default.aspx 即为对应的页面,PipeData为该页面对应C#后台中的一个函数。

dataType:这里我们返回的数据格式为json。

success:返回的数据为res.d,这是一个json对象。

error:请求失败时调用此函数。有以下三个参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。

以下都是调试时的重要参数:

  C#后台代码(范例):

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    //读取文件数据
    [WebMethod]
    public static string PipeData()
    {
        List<Lines> linesobj = new List<Lines>();
        ArrayList lines = new ArrayList();
        StreamReader sr = new StreamReader("C:\\mm.txt", Encoding.Default);
        string temp;
        while ((temp = sr.ReadLine()) != null)
        {
            lines.Add(temp);
        }
        sr.Close();

        for (int i = 0; i < lines.Count; i++)
        {
            string[] str = System.Text.RegularExpressions.Regex.Split(lines[i].ToString(), @"\s{1,}"); //str为当前这一行所有数据
            linesobj.Add(new Lines(){X1=str[6], X2=str[8], Y1=str[7], Y2=str[9], Z1=(Convert.ToDouble(str[0]) - Convert.ToDouble(str[2])).ToString(), Z2=(Convert.ToDouble(str[1]) - Convert.ToDouble(str[3])).ToString(), diameter=str[4], material=str[5]}); 

        }
        JavaScriptSerializer jss = new JavaScriptSerializer();
        string myJson = jss.Serialize(linesobj);
        return myJson;
    }

    public class Lines
    {
        public string X1 { get; set; }
        public string X2 { get; set; }
        public string Y1 { get; set; }
        public string Y2 { get; set; }
        public string Z1 { get; set; }
        public string Z2 { get; set; }
        public string diameter { get; set; }
        public string material { get; set; }
    }

}

  后台在自己的代码中using System.Web.Services;并在使用的方法前面加上[WebMethod]。

  

  此时js中的j变量就可以获取到后台返回的变量myJson了。

时间: 2024-08-25 12:48:17

.net利用ajax返回后台数据的相关文章

.net利用ajax返回后台数据时xmlHttp.status=500

status=500说明服务端出错,确认后台无错误的情况下.可能是数据量过大导致此问题. 比如后台读取txt并将数据转化为json,返回给前端,txt行数小时ajax success,而txt文件增大后失败. 此时在Web.config中加入以下内容即可(加在configuration节点下): <system.web.extensions>    <scripting>       <webServices> <jsonSerialization maxJson

用ajax获取后台数据,返回json数据,怎么在前台使用?

用ajax获取后台数据,返回json数据,怎么在前台使用呢? 后台 C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == "SearchCustomer")                 {                     int ID;                     if (Int32.TryParse(CustomerID, out ID))                     {    

ajax 请求后台数据返回异常 及 提示404方法名不存在

1.正常使用 Ajax 调取后台数据时,提示方法名不存在,Ajax前端正常,方法类bean注入正常,方法注解正常.但参数解析时出现异常. @RequestMapping(value="/getProject") @ResponseBody public Map<String,Object> getProject(@RequestBody Map<String, Object> paraMap,HttpServletRequest request){ Map<

Struts2.5 利用Ajax将json数据传值到JSP

AJAX +JSON=>JSP AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面. JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范

vue实战使用ajax请求后台数据(小白)

vue实战使用ajax请求后台数据(小白) 前言:前端小白入门到这个阶段,应该会知道我们所做的页面上那些数据,绝大部分都不是静态的数据,而是通过调用后台接口把数据渲染到页面上的效果.ajax可以帮助我们更好的去实现这一点,下面是详解在vue中如何使用它. vue本身它是不支持直接发送ajax请求的,需要用到axios(一个基于promise的HTTP库,可以用在浏览器和node.js中)这是Axios文档的介绍,详细可查看:https://www.kancloud.cn/yunye/axios/

jquery实现ajax,返回json数据

jquery实现ajax可以调用几种方法 我经常用的是$get(url,data,callback,type)方法 其中url是异步请求的页面(可以是.ashx文件),data是参数,callback是回调函数,而type是返回数据的类型.type有xml,html,json,text等. 首先,页面引用jquery.js 在页面写ajax处理的js函数 1 2 3 4 5 6 7 8 9 10 11 12 13 function initMeeting() {             $.ge

js页面用定时任务通过AJAX获取后台数据,但是从这个页面跳转到其他页面后,定时任务仍然在定时请求后台

setInterval(function(){//ajax 请求后台数据},1000);这个是A页面的定时器然后我在A页面通过其他请求跳转到其他页面之后后台发现A页面的定时器的那个请求仍然在执行为什么会出现这种情况呢?怎么能让我跳转到其他页面之后定时任务不执行呢? yj327243832 | 浏览 1987 次  2014-08-22 17:26 2014-08-23 11:03 最佳答案 个人感觉如果A页面已经跳转到其他页面,那么那个定时器的请求应该不会再被执行,因为A页面在浏览器中应该已经被

前台通过ajax获取后台数据,PHP如何返回中文数据

现在经常使用Ajax调用后台php获取后台数据,但是PHP返回的数据如果含有中文的话,Ajax会无法识别,那咋整呢,我用的是比较笨的方法,但是实用: echo urldecode(json_encode(array('status'=>'1', 'errMsg'=>urlencode('数据传递错误,请重试')))); return;

ajax返回json数据

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Ajax json test</title> <script language="