Ajax(js)2018-8-7

js中ajax(ei zhei ks)的request和response   与java servlet的request,response不一样,但又很像

js中的用var  request =new XMLHttpRequest();就是提交表单数据的,可以请求或发送少量一部分数据,不用整个页面。

它使用SOAP或其它一些基于XML的web service接口

ajax也可以用于表单验证

ajax 主要是用了XMLHttpRequest对象实现了异步,ie6,5则是用ActiveXObject("Microsoft.XMLHTTP");

http是无状态的通信规则,状态码,响应头,响应体

request.open("get",service.php?number="");
request.send();向一个页面传送数据,然后判断状态码,看是否请求完成

request.onreadystatechange=function(){
if(request.readyState===4){
if(request.status===2000){

然后获取响应的数据request.responseText;

js 中get方法是直接把参数?放在url中传给一个页面,是查询,而post是把参数request.send(date),是保存数据;

在open和send之间一定要有request。setRequestHeader("Content-Type","application/x-www-form-urlencoded");发送表单数据

xhr.setRequestHeader("Content-type","application/json; charset=utf-8");发送json数据

不指定Content-type时,此是默认值值,xhr.setRequestHeader("Content-type", "text/plain; charset=utf-8");纯文本

xhr.setRequestHeader("Content-type", "text/html; charset=utf-8");html文本

json 是独立语言的,任何语言都可以用它

json值可以是数字,字符串,逻辑值boolean,数组[],对象{},null

{

"staff":[

{"name":"jjj",age:13},

{       }

]

}

解析json(eval方式),var jsonobj=eval('('+jsondata+')');alert(jsonobj.staff[0].name);该方式不光解析,还执行字符串的方法,如alert(‘jj’);

JSON.parse(jsondate);第二种方式;该方式会检测出alert不合法

JSONLint   json格式校验工具;

{”success":true,   //是否请求成功

"msg":"xxx",        //请求错误返回的信息

"date":"xxx"    //请求成功返回的数据

}

Jquery (ajax)

$(document).ready(function(){}相比onload不需等图片啊之类的加载出来,DOM结构绘制完毕后就执行,而且可以多次加载

可以简写$(function(){});但有时候,需要点击某个图片还没加载出来,会出现意外情况,此时,就得$(window).load(function(){

带$都是jquery方法

.click(function(){

$.ajax({

type:"GET",

url:"service.php?number="+$("#keyword").val(),

dataType:"json",

success:function(data//即request.responseText){if(data.success){}},

error:function(jqXHR){alert(jqXHR.status}

});

在jquery中是html();js是innerHTML();传参数是设置,不传参数是获取;

http://    www   .    baidu.com    :      8080   /   scripts/jquery.js

协议     子域名     主域名                  端口号     请求资源地址

端口号后面不同不影响,是同域,端口号不同就是跨域了。这个网址请求另一个端口号不同的网址就叫跨域请求

localhost和127.0.0.1之间也叫跨域,js不允许跨域前端请求后端资源;

代理处理跨域,北京的在后端代理请求上海的,然后在返回给北京的前端;

jsonp处理跨域(支持get,不支持post):定义两个<script src="本地“ >  <script src="http://www.bb.com.jsonp.js">在同一页面就可以了,

dataType:“jsonp",改一下,加一个jsonp:"callback",然后在后台get”callback“

h5提供的XHR2(IE10以下不支持)

在服务端加header('Access-Control-Allow-Origin:要访问的域名’);

header('Access-Control-Allow-Methods:Post,Get');

IE自己实现跨域的方式:

也是添一些代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值