ajax怎么获取后台的数据?
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¶m2=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外面需要由回调函数包裹。
0条评论