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. BZOJ 1016 星球大战starwar(逆向-并查集)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1015 题意:给出一个图.每次删掉一个点,求删掉之后连通块个数. 思路:正着做不好做,我们 ...

  2. dom4j API使用简介

    dom4j API使用简介 功能简介 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极 ...

  3. 【转载】两军问题与Paxos算法 & 动画讲解Paxos算法

    http://harry.me/blog/2014/12/27/neat-algorithms-paxos/ 这篇文章里面有用JS写的Paxos过程,有助理解.但是没怎么仔细看,没时间. 这篇文章用两 ...

  4. orm 通用方法——GetOneModel 条件查询一个对象

    数据连接层的方法封装成通用方法是很有必要,节省不必要的重复写代码. Golang的orm.xorm框架没有封装这些操作. 这里是一个查询单个对象的方法. 此处抛砖引玉,大家继续完善. 通用方法定义代码 ...

  5. QDialog之屏蔽Esc键

    简述 Qt中Esc键会在一些控件中默认的进行一些事件的触发,比如:QDialog,按下Esc键窗口消失.大多数情况下,我们不需要这么做,那么就需要对默认事件进行屏蔽. 简述 源码分析 事件过滤器 事件 ...

  6. UVa 1626 (输出方案) Brackets sequence

    正规括号序列定义为: 空序列是正规括号序列 如果S是正规括号序列,那么[S]和(S)也是正规括号序列 如果A和B都是正规括号序列,则AB也是正规括号序列 输入一个括号序列,添加尽量少的括号使之成为正规 ...

  7. tarjan总结

    先说一下割点跟割边吧. 割桥就是如果一个连通图里删除这条边之后,这个图会变成两个连通图,那么这条边就称之为割桥. 这是割桥的代码,里面呆着lca求法. 割点和割桥的就是用一个时间戳和回到祖先确定. 用 ...

  8. iOS 8 AutoLayOut入门

    http://blog.csdn.net/asdfg13697116596/article/details/42562565 iOS 8 AutoLayOut入门自从iOS6带来Auto Layout ...

  9. linux下编译软件通用方法(memcached为例)

    1)到软件的官网或其他网站下载软件的源码包 2)解压源码包,并切换到源码目录中 3)使用./configure --help查询配置帮助,里面可能会有安装指南(Installation directo ...

  10. HDU 3573 Buy Sticks (逻辑)

    题意:a,b,c三种棍子长度分别为20,28,32,现需要这三种棍子数根,欲买长为75的棍子来剪成这三种(不够长的就废弃) ,问需要买多少根. 思路:将所有棍子尽可能和其他搭配起来,使得数量减到最少. ...