标签:name 客户端 package orm 进一步 行数据 获取 request对象 字段
Ajax全称:Asynchronous JavaScript and XML(异步的JavaScript和XML)
特点:在不必刷新整个网页的情况下实现局部更新,带来更好的用户体验。
因为XMLHttpRequest
(XHR)对象的出现才有了异步的概念。通过XMLHttpRequest
对象实现后台和服务器进行数据的交换而不必刷新整个页面。
实例化一个XHR对象
var request =new XMLHttpRequest();
对于IE6及更老版本的IE:
var request; if(windows.XMLHttpRequest){ request=new XMLHttpRequest();//IE7+,Fiefix,Chrome,Opera,Safari... } else{ request=new ActiveXObject("Microsoft.XMLHTTP");//IE6,IE5 }
"HTTP请求"概念介绍
一个完整的HTTP请求过程,通常需要下面7个步骤:
- 建立TCP连接
- Web浏览器向Web服务器发送请求命令
- Web浏览器发送请求头信息
- Web服务器应答
- Web服务器发送应答头信息
- Web服务器向浏览器发送数据
- Web服务器关闭TCP连接
一个HTTP请求一般由四部分组成:
- HTTP请求的方法或者动作,Get/Post
- 正在请求的地址URL
- 请求头,包含一些客户端环境信息,身份验证信息等
- 请求体,也就是请求正文,请求正文中可以包含客户提交的查询字符串信息,表单信息
GET与POST
GET
:一般用于信息获取
使用URL传递参数(变量会放在URL里边)
对所发送信息的数量也有限制,一般在2000个字符
幂等,执行N次与执行1次效果相同,都不会改变数据库的信息POST
:一般用于修改服务器上的资源
对所发送信息的数量无限制一个HTTP响应一般由三部分组成:
- 一个数字和文字组成的状态码,用来告诉客户端请求是成功还是失败
- 响应头,响应头也和请求头一样包含许多有用的信息,例如服务器类型,日期时间,内容类型和长度等
- 响应体,也就是响应正文,服务器传来的内容
HTTP状态码分类 | |
---|---|
分类 | 分类描述 |
1XX 信息 | 服务器收到请求,需要请求者继续执行操作 |
2XX 成功 | 操作被成功接收并处理,例如 200 OK |
3XX 重定向 | 需要进一步的操作以完成请求 |
4XX 客户端错误 | 请求包含语法错误或无法完成请求,例如 404 NOT FOUND |
5XX 服务器错误 | 服务器在处理请求的过程中发生了错误 例如 500 |
request.open("GET","get.php",true); request.send();//因为GET请求内容一般在url中,所以send()可以为空,但是post请求需要在send()中添加信息 request.open("POST","create.php",true); request.setRequestHeader("Content-type","application/x-www-form-urlencoded");//请求头信息(一定是写在open()和send()中间) request.send("name=王二狗&sex=男");
responseText
:获取字符串形式的响应数据responseXML
:获取XML形式的响应数据 status
和statusText
:以数字和文本形式返回HTTP状态码getAllRespondseHeader()
:获取所有的响应报头getResponseHeader()
:查询响应中的某个字段的值readyState
属性var request=new XMLHttpRequest(); request.open("GET","get.php",true); request.send(); request.onreadystatechange=function(){ if(request.readyState===4 && request.status===200){ //做一些事情request.responseText } }
【前端】
<script src="~/Scripts/jquery-1.10.2.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#search").click(function() { var request = new XMLHttpRequest(); request.open("GET", "/Ajax/Details?id=" + parseInt($("#keyWord").val()), true); //通过GET方法去请求AjaxController下面的Details方法,并传入id的值作为查询条件 request.send(); }); }) </script> <label>请输入要查询的学生编号:</label> <input type="text" id="keyWord"/> <button id="search">查询</button>
【后端】AjaxController控制器Details方法
public ActionResult Details(int id) { if (dbContext.StudentSet.Find(id) == null) { return Content("Fail"); } else { return Content("Success"); } }
【结果】我的数据库中没有id为1的数据,有id为6的数据
简介 JSON: JavaScript对象表示法(JavaScript Object Notation) JSON是存储和交换文本信息的语法,类似XML,它采用键值对的方式来组织,易于阅读和编写,同时也易于机器解析和生成* JSON是独立于语言的,也就是说不管什么语言,都可以解析Json,只需要按照json的规则来就行
null
例如:
{ "staff":[ {"name":"宏碁","age":70}, {"name":"郭靖","age":35}, {"name":"黄蓉","age":30} ] } { "nane": "los", "success": "True", "message": "请求成功", "info": [{ "name": "laosiji", "age": "100", "asdas": "121", "hobby": ["daqiu", "youyong"], "aa": [{ "anme": "aa", "age": 20 }, { "aa": "asdas", "age": 5565 }] }] } `
方式一:
var jsondata=‘{"staff":[{"name":"黄蓉","age":25},{"name":"王五","age":25},{"name":"升水","age":22}]}‘; var jsonobj=eval(‘(‘+jsondata+‘)‘); //如果在json数据中存在js脚本的话会直接执行。(危险) alert(jsonobj.staff[0].name);
方式二
var jsondata=‘{"staff":[{"name":"黄蓉","age":25},{"name":"王五","age":25},{"name":"升水","age":22}]}‘; var jsonobj=JSON.parse(jsondata); //如果在json数据中存在js脚本的话会报错(常用,安全,方便)。 alert(jsonobj.staff[0].name);
在线JSON格式化和校验工具jsonlint
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢,简单地理解就是因为JavaScript同源策略的限制,a.com域名下的js无法操作b.com或c.a.com域名下的对象。
标签:name 客户端 package orm 进一步 行数据 获取 request对象 字段
原文地址:http://www.cnblogs.com/acuier/p/6851810.html