ajax怎么获取后台的数据?,第1张

ajax获取后台数据的方法很多!在此给你讲两种:第一种通过Ajax异步请求进行实现!具体方法包括:$get() $psot() $AJax(),关于这三种方法的用法,请楼主参考http://wwww3schoolcomcn/jquery/ajax_getasp或者http://wwww3schoolcomcn/jquery/ajax_postasp或者http://wwww3schoolcomcn/jquery/ajax_ajaxasp当然:这些资料都是W3C提供的,可能解决不了你的问题!如果你有兴趣,可以百度HI我!或者加我为QQ好友!我详细给你讲解一下!除了上述这些方法以外,你还可以用程序集来实现!你可以从网上下载一个名为:AjaxPro2dll的程序集!添加对其的引用就行了!关于这个程序集的用法,还请楼主认真学习!因为如果你学会了这种方法,想必$get() $post() $Ajax()这些方法你都不想用了!因为这个程序集用起来的确很方便!具体用法请参考:http://wwwcnblogscom/IsNull-Soft/articles/2437550html 如果有其他疑问,请致电:one_eight_nine_one_one_three_five_five_zero_eight_seven

1建立一个 TCPCLIENT

2把TCPCLIENT 连到到 服务器所在的IP

3向服务器发送HTTP 请求字符 这里以 arar 举例说明

GET /arar HTTP/11\r\n\r\n

这就是HTTP 请求字符 记住 后面的"\r\n\r\n" 绝对不能少

4服务器 接受请求后会响应 你的请求

先会响应HTTP 字会 紧跟在字符后面的 就是arar 这个文件的2进制信息 也就是 响应字符串和 下载文件是混合在一起的 你要人工进行解析

响应的信息是这样的

HTTP/11 200 OK\r\n

Date: Thu, 16 Jun 2011 00:37:56 GMT\r\n

Server: Microsoft-IIS/60\r\n

X-Powered-By: ASPNET\r\n

X-AspNet-Version: 2050727\r\n

Cache-Control: private, no-store\r\n

Content-Type: text/html; charset=utf-8\r\n

Content-Length: 8097\r\n\r\n

arar 的二进制信息

你要人工的找到 Content-Length: 8097 知道 arar的长度

然后再人工的找到 \r\n\r\n 因为这个字符串后面跟的就是 arar 的二进制信息

知道了 长度和起始位置 就很容易读取 这个文件了

当然 通过TCPCLIENT 的方法有点小困,不过你可以调用更简单的 HTTPREQUEST 类来下载,这些是封装的 你根本不用实现细节

JSON 一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。(现在公司大部分都用这个)。 json的表示方式:{"city":"Beijing","street":" Chaoyang Road ","postcode":100025} ,这就是个简单的json对象。实际上此处的 json对象相当于 Java 中的 Map<String, Object>。注意 Key 只能用 String 表示。

其中 Value 也可以是另一个 Object 或者数组,因此,复杂的 Object 可以嵌套表示,例如,一个 Person 对象包含 name 和 address 对象,可以表示如下:

{"name":"Michael","address":

{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}

}

</SPAN>

</SPAN>JavaScript 处理 JSON 数据

function handleJson() {

var j={"name":"Michael","address":

{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}

};

documentwrite(jname);

documentwrite(jaddresscity);

}

现在一般在后台用gson将数据转换成json对象,前台用jquery的ajax与后台的数据进行交互。具体咋用网上有很多实例,如果实在不懂得话,加我的qq:1249119842

本文给大家分享一下,如何使用ajax读取Json中的数据。

一、基础知识

什么是json?

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

JSON 是轻量级的文本数据交换格式

JSON 独立于语言

JSON 具有自我描述性,更易理解

JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。

JSON - 转换为 JavaScript 对象

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

二、读取Json中的数据

首先我编写了一个Json的文件,里面有内容。注意格式。

图一 编写json的文件

然后,编写html代码,并引用ajax。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" "http://wwww3org/TR/xhtml1/DTD/xhtml1-transitionaldtd">

<html xmlns="http://wwww3org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>使用AJAX异步读取json</title>

<script src="ajaxjs">

</script>

<script>

windowonload=function()

{

/获得按钮/

var aBtn=documentgetElementById('btn1');

//给按钮添加点击事件

aBtnonclick=function()

{

//调用ajax函数

ajax('datajson',function(str){

//将JSON 数据来生成原生的 JavaScript 对象

var arr=eval(str);

alert(arr[0]b);

});

};

};

</script>

</head>

<body>

读取json里面的数据 <br />

<input id="btn1" type="button" value="读取json里面的数据" />

</body>

</html>

封装的AJAX函数代码如下:

/

AJAX封装函数

url:系统要读取文件的地址

fnSucc:一个函数,文件取过来,加载完会调用

/

function ajax(url, fnSucc, fnFaild)

{

//1创建Ajax对象

var oAjax=null;

if(windowXMLHttpRequest)

{

oAjax=new XMLHttpRequest();

}

else

{

oAjax=new ActiveXObject("MicrosoftXMLHTTP");

}

//2连接服务器

oAjaxopen('GET', url, true);

//3发送请求

oAjaxsend();

//4接收服务器的返回

oAjaxonreadystatechange=function ()

{

if(oAjaxreadyState==4) //完成

{

if(oAjaxstatus==200) //成功

{

fnSucc(oAjaxresponseText);

}

else

{

if(fnFaild)

fnFaild(oAjaxstatus);

}

}

};

}

接下来就是要读取出文件内容,在这之前,有一点要提的是,AJAX是从服务器上读取文件,所以要把写好的JSON文件放到服务器的路径下,可能初学者接触过的服务器只有IIS,他的文件路径是C:\inetpub\wwwroot\aspnet_client\system_web,只要把Json放到这个路径下,然后用localhost来访问服务器,就可以了。

图二 读取效果图

Jquery ajax在请求不同域名(外网)的URL时,由于浏览器安全限制(同源策略)是不允许请求的,将会发生错误。如果想要在这样的场景下获取返回的数据,可以参考下面的方法:

1、搭建服务器做代理捉取跨域请求返回的数据,本地应用页面的ajax请求建立的代理服务器就能间接的实现这样的需求。但是此种做法较为复杂,不建议使用;

2、使用jsonp跨域访问,这种方法是较为普遍的解决方案,其实现原理是:HTML的<script>标签是可以突破同源策略从其他来源获取数据,所以可以通过<script>标签引入jsonp文件,然后通过一系列JS操作获取数据。

具体实现步骤如下:

利用本地页面js创建一个<script>元素,地址指向第三方的API网址,形如:   

<script src="http://wwwexamplenet/apiparam1=1&param2=2"></script>

提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递), 第三方产生的响应为json数据的包装(故称之为jsonp,即json padding),形如:    

callback({"name":"hax","gender":"Male"})

这样浏览器会调用callback函数,并传递解析后json对象作为参数。本地脚本可在callback函数里处理所传入的数据。  

示例代码:

<script>  

 var url = "http://localhost:8080/crcp/rcp/t99eidt/testjsondojsonp=callbackfunction";   

 var script = documentcreateElement('script');   

 scriptsetAttribute('src', url);  //load javascript    

 documentgetElementsByTagName('head')[0]appendChild(script);   

 //回调函数  

  function callbackfunction(data){  

   var html=JSONstringify(dataRESULTSET);  

   alert(html);  

    } 

</script>

使用jsonp需要后端代码配合, 后台返回的json外面需要由回调函数包裹。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » ajax怎么获取后台的数据?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情