ajax这块我以前一直都是用现成的jq封装好的东西,而且并没有深入浅出的研究过,也没有使用过原生形式的实现。包括了解jsonp和跨域的相关概念但是依然没有实现过,其中有一个重要的原因我认为是我当时并不了解后端的一些操作模式,也并没有掌握任何一门后端的脚本语言,导致没有办法灵活的测试。不过现在完全不存在这个完题了。。我已经深入浅出的掌握了python。。。也有一个 现成的django环境 可以好好测试一下。

从原生部分谈起:

var searchButton = document.getElementById('search');
searchButton.addEventListener('click',function(){
//发送AJAX请求并且处理
var request;
url = 'service.php'
request = new XMLHttpRequest()
request.open('get',url);
request.send(); },false);

这是针对现代浏览器的一个粗处理。看上去也非常清晰,就是获取一个网页上现成的domNode 然后对该domNode触发一个点击事件,从而使用一个ajax的操作。

这里插入一个 javascript操作json的 一点知识,帮助自己也好好复习一下。因为它们真是无处不在。。太常用了,如果正要使用却忘记了。。那不是很尴尬。。

因为自己玩太长时间python的关系 js的很多api都忘记了。

JSON.parse()

用于将一个json字符串解析成json对象。

JSON.stringify()

用于将一个json对象解析成字符串。

接下来是使用最最最最常用的第三方js库 jquery库来实现ajax

首先来介绍一下jq里面最底层方法jquery.ajax([settings])

type:类型,“post”或"get",默认为"get方法"

url:发送请求的地址

data:是一个对象,连同情趣发送到服务器的数据

dataType:预期服务器返回的数据类型,如果不指定,jquery将自动根据http包mime信息来判断,一般我们采用json格式,可以设置为“json”。

success:是一个方法,请求成功后的回调函数。传入返回之后的数据,以及包含成功码的字符串

error:是一个方法,请求失败时调用这个函数。传入XMLHttpRequest对象。

然后下面是一个 使用jq里面最底层的.ajax()方法的例子。这个方法应该是比较灵活的了

    $(document).ready(function(){
$("#search").click(function(){
$.ajax({
type:'GET',
url:"service.php",
dataType:"json",
success:function(data){ },
error:function(){
alert('我失败了');
}
});
});
});

因为我以前原生js没有学习好的原因,所以我当时一直无法理解这个方法里面也就是调用.ajax()这个方法的时候 里面使用 面向对象的编程的方式 以key-value的形式 ','隔开的形式来写  随着现在更深入的学习js之后 终于理解了 是有这种书写方式的。 所以说 使用第三方库虽然会让操作和使用变得方便,也会使得初学者陷入虽然会实现使用,却不知道为什么可以这么写的困局之中。。

再贴一个使用post方法带参数传递的例子

    $(document).ready(function(){
$("#search").click(function(){
$.ajax({
type:'POST',
url:"service.php",
dataType:"json",
data:{xxx:'hehe',yyy:'heiheihei'},
success:function(data){ },
error:function(){
alert('我失败了');
}
});
});
});

这样就可以了。。 跨域我另外开一个文章来写。。自己写后端来实现一下 几种跨域的方法。

前端复习-02-ajax原生以及jq和跨域方面的应用。的更多相关文章

  1. Ajax请求WCF服务以及跨域的问题解决

    Ajax请求WCF服务以及跨域的问题解决 这两天准备重构一下项目,准备用纯html+js做前台,然后通过ajax+WCF的方式来传递数据,所以就先研究了一下ajax访问的wcf的问题,还想到还折腾了一 ...

  2. AJAX(XMLHttpRequest)进行跨域请求方法详解

    AJAX(XMLHttpRequest)进行跨域请求方法详解(三) 2010年01月11日 08:48:00 阅读数:24213 注意:以下代码请在Firefox 3.5.Chrome 3.0.Saf ...

  3. 用原生js来处理跨域的数据(jsonp)

    说明总结: 1.ajax和jsonp其实本质上是不同的东西.ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加<script>标签来调用服务器提 ...

  4. 小结ajax中的同源和跨域 jsonp和cors

    网上的同源和跨域一般都比较复杂,最近也稍微总结了一下: 所谓同源,是浏览器的一种安全机制,作用在于保护网页数据的安全,不同源的网页之间不允许cookie dom ajax等行为 同源的条件:1.协议相 ...

  5. JavaScript系列----AJAX机制详解以及跨域通信

    1.Ajax 1.1.Ajax简介 Ajax简介这一部分我们主要是谈一下ajax的起源,ajax是什么?因为这些是跟技术无关的.所以,大多细节都是一笔带过. Ajax的起源? Ajax一词源于2005 ...

  6. ajax工作原理及jsonp跨域详解

    一.Ajax简介 ajax = 异步 JavaScript 和 XML. ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.我们知道,传统的网页(不使用ajax)如果需要更新内容, ...

  7. 前端页面调用Spring boot接口发生的跨域问题

    最近要重构一个基于spring boot的后端API服务,需要再本地测试.在本地测试时,运行在本地的前端页面发送一个ajax请求访问后端API,然后浏览器报错blocked CORS policy. ...

  8. 从前端和后端两个角度分析jsonp跨域访问(完整实例)

    一.什么是跨域访问 举个栗子:在A网站中,我们希望使用Ajax来获得B网站中的特定内容.如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题.你可以理解为两个域名之间不能跨过域名来发送请求或者请 ...

  9. ajax异步请求/同源策略/跨域传值

    基本概念 Ajax 全称是异步的 JavaScript 和 XML . 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进 ...

随机推荐

  1. IE JS编程需注意的内存释放问题

    1.给DOM对象添加的属性是一个对象的引用.范例:var MyObject = {};document.getElementById('myDiv').myProp = MyObject;解决方法:在 ...

  2. IE6,7下li标签的间隙

    1.在IE6,7下li本身没浮动,但是li内容有浮动的时候,li下边就会产生3px的间隙. 解决办法: 1.给li加浮动 2.给li加vertical-align:top; eg: <!DOCT ...

  3. Struts2+Uploadify文件上传使用详解

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例是php版本的,本文将详细介绍Uploadify在java中的使用,您也可以点击下面的链接进行演示或下 ...

  4. C#中的lock关键字;就是lock住一个大家都共同访问的(静态static的)东东就行了

    public class ChatService : IChat //继承IChat接口或者说IChat的实现类 { //定义一个静态对象用于线程部份代码块的锁定,用于lock操作 private s ...

  5. PopupWindow+ListView

    1. 获取打到数据 for (int i = 0; i < iocOutMakeMaterialSubmit.data.size(); i++) { dataListPopupWindow.ad ...

  6. linux sed 命令

    转载:http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行 ...

  7. 【英语】Bingo口语笔记(28) - 表示“秘密”

  8. 文件IO一些注意的地方

    两个各自独立的进程各自打开同一个文件,则每个进程都有各自的文件表项.这是因为每个进程都有它自己对该文件的当前偏移量.但是对一个给定的文件只有一个v节点表项.lseek()只修改文件表项中的当前文件偏移 ...

  9. 【转】不可变数组NSArray与可变数组NSMutableArray

    原文网址:http://www.jianshu.com/p/1ad327f56d1d 不可变数组NSArray //创建一个空数组 NSArray *array = [NSArray array]; ...

  10. jquery ajax jsonp跨域调用实例代码

    今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Lan ...