ajax有几个含义,我所知道的AJAX

AJAX为“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),是一种广泛应用在浏览器的网页开发技术。Ajax是多项技术的综合应用。

1、 不同浏览器下ajax实现上的差异?

创建对象的方式不同:

var xmlHttp=window.XMLHttpRequst ? new XMLHttpRequest : new ActiveXObject('Microsof.XMLHTTP');//兼容不同浏览器

2、一次ajax请求过程中有哪几种状态值,不同状态值之间含义是什么?

我们定义的函数一般会被执行3次,状态码依次返回2,3,4,

xmlHttp.readyState:

0:表示未初始化,还没有调用send()方法

1:表示载入,已调用send()方法,正在发送请求

2:载入完成,send()方法执行完成,已经接受全部响应内容

3:交互,正在解析响应内容

4:完成,响应内容解析完成,可以在客户端调用了

3、ajax在跨域的情况下会出现什么状况,以及解决方案?

跨域的必要条件:

1、协议(http、https)、

2、域名(https://www.baidu.com)域名就是baidu、

3、端口(80、8080、8081)

(以上有任何一个不同都视作跨域)

解决方案:

A、jsonp(利用动态创建script标签来实现的)

B、document.domain(将不同的两个页面的域名修改一样)

C、window.name(两个页面的window.name是相同的,在同一浏览器下)

D、HTML5的 postMessage

function onload(){

var iframe=document.getElementById('iframe');

var win=iframe.contentWindow; //回去window对象

win.postMessage("哈哈,我实现跨域了","*");

// postMessage 第一个参数为发送的消息,只能是字符串,第二个参数为限定接受消息的那个window对象所在的域,如不想限定域,可以使用通配符 * 。

}

AJAX请求步骤:

1、创建异步对象。

2、建立链接 {

A,请求方式(get/post),

B、请求地址、

C、是否异步 {

true:表示建立异步链接,

false:表示等待服务器的响应。

}

}

3、指定数据返回时回调函数(onreadystatechage )

4、发送请求(send)

实例:

var xmlHttp=window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');

xmlHttp.open('GET','data/jsonData.json',true);

xmlHttp.onreadystatechange=function(){

if(xmlHttp.readyState==4 && xmlHttp.status==200){

var jsonData=xmlHttp.responseText;//得到服务器响应的数据

jsonData=JSON.parse(jsonData);//把json字符串转化为json对象 或者使用 jsonData=eval('('+jsonData+')');

//处理数据

}

}

xmlHttp.send(null);

Jquery的Ajax实现:

$.ajax({

type:'POST',

url:'http://apis.juhe.cn/cook/query',

dataType:'jsonp',

data:{

'key': 'dedaec74f84b89cae6463725b1161756',

'menu': '青椒炒肉',

'rn': '10',

'pn': '3'

},

success:function (data) {

console.log(data);

},

error:function () {

}

});

AJAX跨域之JSONP实现方式:

Promise

function jsonpCallback(result) {

console.log(result);

}

$(function(){

var JSONP=document.createElement("script");

JSONP.type="text/javascript";

JSONP.src="http://ceshi.cc/ceshi.php?callback=jsonpCallback";

JSONP.charset="utf-8";

document.getElementsByTagName("head")[0].appendChild(JSONP);

});

PHP页面实现关键代码:

header("content-type:application/json");

if ($_GET['callback']) {

print $_GET['callback']."(";

}

print json_encode($content);

if ($_GET['callback']) {

print ")";

}

我所知道的MVVM框架(转 司徒大大 )

RubyLouvre commented on 6 Sep 2014   avalon http://avalonjs.github.io/ (使用Object.defineProperties. V ...

《从零开始学Swift》学习笔记(Day5)——我所知道的标识符和关键字

Swift 2.0学习笔记(Day5)——我所知道的标识符和关键字   原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和关键字,一直没有好好的总结,就是这样的用着,现在小小的整 ...

《从零開始学Swift》学习笔记(Day5)——我所知道的标识符和keyword

 Swift 2.0学习笔记(Day5)--我所知道的标识符和keyword   原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和keyword,一直没有好好的总结,就是这 ...

我所知道的Javascript

javascript到了今天,已经不再是我10多年前所认识的小脚本了.最近我也开始用javascript编写复杂的应用,所以觉得有必要将自己的javascript知识梳理一下.同大家一起分享javas ...

我所知道的HttpContext.Current

在MVC中,HttpContext.Current是比较常见的对象,可以用它来进行Session,Cache等的保存等.但是它并不是无处不在的,下面就慢慢来揭开它的面纱. 当我们向服务端发送请求的时候 ...

你所知道的Java单例模式并不是单例模式

当我们搜索单例模式的时候,能看到很多例子,什么懒汉式.饿汉式,大概如下: public class Singleton { private static Singleton instance=null ...

我所知道的window.location

多说无益 直接上干货 假如一个地址为  http://127.0.0.1:5000/index.html?id=4 window.location.href -- 完整路径 -- http://127 ...

网页基础:网页设计(我所知道的所有的html和css代码(含H5和CSS3)),如有错误请批评指正

最基础的网页设计,就是给你一个图片你做成一个网页,当然,我的工作是C#,个人网页的功底不是很高首先先认识一下网页的一些相关知识: 一般的,现在一个html网页一般包含html文件,css文件,js文件 ...

我所知道的JavaScript中判断数据类型

相信一提到怎么判断js的数据类型,大家都会想到的是typeof.instanceof,那么为什么有了typeof的存在还要有instanceof? typeof? 根据MDN:typeof操作符返回一 ...

随机推荐

学习hibernate @Entity该导入哪个包

1.在@Entity时很容易顺手导入@org.hibernate.annotations.Entity这个包,结果导致了异常.其实应该导入的是@javax.persistence.Entity Alw ...

js控制固定div和随屏滚动div兼容多浏览器和纯css控制(来自网络)

}" var data = {}; var b = (JSON.stringify(data) == "{ ...

Unity3D中Isometric Tilemap功能实践

前言 最近出于兴趣想自己做一个2D的游戏,因为有着C#的基础,所以决定使用Unity3D来做. 之前对于Unity3D其实了解不多,不过看了一些Unity3D的视频和官方文档后,暂时做起来也没遇到什么 ...

leetcode239

class Solution: def maxSlidingWindow(self, nums: 'List[int]', k: int) -> 'List[int]': n = len(num ...

2. instr用法

跟oracle中的instr用法一样: SQL> select count(*) from t where instr(title,‟oracle‟)>0; COUNT(*) ———- 5 ...

.34-浅析webpack源码之事件流make(3)

新年好呀~过个年光打游戏,function都写不顺溜了. 上一节的代码到这里了: // NormalModuleFactory的resolver事件流 this.plugin("resolv ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值