看到一个例子,它的思路是这样的:
1、C#读取XML中的数据,然后使用“Response”将其数据输出出去。
2、然后被Jquery在界面上获取,并使用在FusionChart里面。问题:Jquery代码没有发挥作用,XML中的信息直接被写在了asp.net界面上。(小弟Jqeury不是很好,还请各位大侠给分析下)后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;namespace FCFDemo
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Clear();
            string ds = File.ReadAllText(Server.MapPath("data.xml"), Encoding.GetEncoding("gb2312"));
            Response.Write(ds);
            Response.End();
        }
    }
}前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="FCFDemo.Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="FusionCharts/FusionCharts.js" type="text/javascript"></script>
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">        $.ajax({ url: "Default.aspx", data: { 'nocache': Math.random() }, timeout: 50000, success: function (text) 
           {
                var myChart1 = new FusionCharts("FusionCharts/Column3D.swf", "myChartId", "600", "350");                myChart1.setDataXML(text);
                myChart1.render("chartDiv");
            }
        });

    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <div id="chartDiv" style=" text-align:center"></div>
    </div>
    </form>
</body>
</html>问题二:
$.ajax({ url: "Default.aspx", data: { 'nocache': Math.random() }, timeout: 50000, success: function (text){})
这是什么方法???作用是什么???里面的参数又是什么意思???谢谢各位了。

解决方案 »

  1.   

    是jquery的 ajax请求函数作用是  异步执行请求
    $.ajax({ url: "Default.aspx", //请求的地址 为Default.aspx
    data: { 'nocache': Math.random() },//传递的参数 可通过 Request["nocache"]获取
     timeout: 50000, //请求超时时间
    success: function (text){//请求完成后回调函数   text 为页面返回值
    })
      

  2.   

    你写的有问题  后台代码改为protected void Page_Load(object sender, EventArgs e)
      {
      if(Request["nocache"]!=null)
    {
      
    string ds = File.ReadAllText(Server.MapPath("data.xml"), Encoding.GetEncoding("gb2312"));
      Response.Write(ds);
      Response.End();
    }
      }
      

  3.   

    第一个问题,应该是中文导致你试下没有中文的xml,编码换成 utf-8第二个问题是jquery 的ajax 方法作用是异步发送请求参数是 请求url ,传输的data 和回调函数
      

  4.   


    异步请求什么意思???异步刷新吗???'nocache': Math.random()的作用是什么呢???
      

  5.   

    js 是解释执行的,解析到它的时候就执行了。正常应该写在 onload 里,或者那个按钮的点击事件中
      

  6.   


    加上“if(Request["nocache"]!=null)”这句,就什么也不显示了啊。
      

  7.   


    xml是这样的呢
      

  8.   


    改成了UTF-8也不行啊。
      

  9.   

    XML改为了这个,还是不行呢。
    <?xml version="1.0" encoding="utf-8" ?>
    <graph caption='Monthly Sales Summary' subcaption='For the year 2006' xAxisName='Month' yAxisName='Sales' numberPrefix='$'>
      <set name='Jan' value='17400' link='Link1.html' color='AFD8F8' />
      <set name='Feb' value='19800' link='Link.htm' color='F6BD0F' />
      <set name='Mar' value='21800' link='Link.htm' color='8BBA00' />
      <set name='Apr' value='23800' link='Link.htm' color='FF8E46' />
      <set name='May' value='29600' link='Link.htm' color='008E8E' />
      <set name='Jun' value='27600' link='Link.htm' color='D64646' />
    </graph>
      

  10.   

    if(Request["nocache"]!=null)
    加上它,好了,为什么呢???
      

  11.   

    Response.Clear();
      string ds = File.ReadAllText(Server.MapPath("data.xml"), Encoding.GetEncoding("gb2312"));
      Response.Write(ds);
      Response.End();
    =》
    Response.Clear();
      string ds = File.ReadAllText(Server.MapPath("data.xml"), Encoding.GetEncoding("gb2312"));
    Response.ContentType = "text/xml";
      Response.Write(ds);
      Response.End();还是试不写中文的
      

  12.   


    谢谢您们。jinkuang45、Sandy945。
    真的是它的事,加上这句就好了。另外试了一下,编码要用gb2312,不然会出现乱码???
      

  13.   


    if(Request["nocache"]!=null)
    不明白这是怎么回事啊???
      

  14.   

    “if(Request["nocache"]!=null)”得怎么告诉你才行,这个是限制条件和它有关系才见鬼了呢之前的代码 写 data: { 'nocache': Math.random() },  的原因 是避免浏览器缓存根本不是传参,所以不需要判断它你可以写中文再试下
      

  15.   

    public partial class Default : System.Web.UI.Page
      {
      protected void Page_Load(object sender, EventArgs e)
      {
      Response.Clear();
      string ds = File.ReadAllText(Server.MapPath("data.xml"), Encoding.GetEncoding("gb2312"));
      Response.Write(ds);
      Response.End();
      }
      }这个你写的代码 ,, 请求这个页面的时候 你只是读取XML  然后 输出, 然后停止输出, 页面的内容就返回不到客户端, 也就是你所见到的 只有XML的内容我让你加上这一句
     if(Request["nocache"]!=null)
    是判断这个请求是AJAX请求的 还是正常请求的步骤是这样的, 用户请求default页面 - 判断非AJAX请求的 正常输出页面不输出XML - 客户端浏览器看到页面 - 执行AJAX请求到default页面 - 判断是AJAX请求 只输出XML 然后停止输出 - 客户端浏览器接收到AJAX请求的页面内容  不加上这句判断的步骤用户请求default页面 - 直接输出XML  停止输出 只有这两步