前端复习-02-ajax原生以及jq和跨域方面的应用。
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和跨域方面的应用。的更多相关文章
- Ajax请求WCF服务以及跨域的问题解决
Ajax请求WCF服务以及跨域的问题解决 这两天准备重构一下项目,准备用纯html+js做前台,然后通过ajax+WCF的方式来传递数据,所以就先研究了一下ajax访问的wcf的问题,还想到还折腾了一 ...
- AJAX(XMLHttpRequest)进行跨域请求方法详解
AJAX(XMLHttpRequest)进行跨域请求方法详解(三) 2010年01月11日 08:48:00 阅读数:24213 注意:以下代码请在Firefox 3.5.Chrome 3.0.Saf ...
- 用原生js来处理跨域的数据(jsonp)
说明总结: 1.ajax和jsonp其实本质上是不同的东西.ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加<script>标签来调用服务器提 ...
- 小结ajax中的同源和跨域 jsonp和cors
网上的同源和跨域一般都比较复杂,最近也稍微总结了一下: 所谓同源,是浏览器的一种安全机制,作用在于保护网页数据的安全,不同源的网页之间不允许cookie dom ajax等行为 同源的条件:1.协议相 ...
- JavaScript系列----AJAX机制详解以及跨域通信
1.Ajax 1.1.Ajax简介 Ajax简介这一部分我们主要是谈一下ajax的起源,ajax是什么?因为这些是跟技术无关的.所以,大多细节都是一笔带过. Ajax的起源? Ajax一词源于2005 ...
- ajax工作原理及jsonp跨域详解
一.Ajax简介 ajax = 异步 JavaScript 和 XML. ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.我们知道,传统的网页(不使用ajax)如果需要更新内容, ...
- 前端页面调用Spring boot接口发生的跨域问题
最近要重构一个基于spring boot的后端API服务,需要再本地测试.在本地测试时,运行在本地的前端页面发送一个ajax请求访问后端API,然后浏览器报错blocked CORS policy. ...
- 从前端和后端两个角度分析jsonp跨域访问(完整实例)
一.什么是跨域访问 举个栗子:在A网站中,我们希望使用Ajax来获得B网站中的特定内容.如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题.你可以理解为两个域名之间不能跨过域名来发送请求或者请 ...
- ajax异步请求/同源策略/跨域传值
基本概念 Ajax 全称是异步的 JavaScript 和 XML . 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进 ...
随机推荐
- HDU 4757 Tree(可持久化trie)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4757 题意:给出一棵树,节点有权值.每次询问x到y的路径上与z抑或的最大值. 思路:可持久化trie. ...
- HDU 4726 Kia's Calculation(贪心构造)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4726 题意:给出两个n位的数字,均无前缀0.重新排列两个数字中的各个数,重新排列后也无前缀0.得到的两 ...
- leetcode:Lowest Common Ancestor of a Binary Search Tree
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BS ...
- java.io.InvalidClassException: com.master.CurrentMessages; local class incompatible:
报错信息如下: java.io.InvalidClassException: com.master.CurrentMessages; local class incompatible: stream ...
- 如何在Android studio中同时打开多个工程? (转载)
最近学习Android Studio,想同时打开两个Project.但是点击File->Open之后,原有的Project被关闭掉了.怎么在新的窗口中打开Project呢? 解决: 点击Help ...
- 51nod1199 Money out of Thin Air
链剖即可.其实就是利用了链剖后子树都在一段连续的区间内所以可以做到O(logn)查询和修改. 线段树细节打错了..要专心!肉眼差错都能找出一堆出来显然是不行的!. #include<cstdio ...
- 51nod1120 机器人走方格 V3
跟括号序列是一样的,将向右走看成是左括号向左走看成是右括号就可以了.那么就是卡特兰数了.然后由于n和m太大所以用了lucas定理 //跟括号序列是一样的,将向右走看成是左括号向左走看成是右括号就可以了 ...
- pageX, clientX ,screenX, offsetX, layerX, ,x的区别
事件对象event的位置属性,这些参数比较容易混淆 1. pageX,pageY :IE不识别的,鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化,其实就是clientY ...
- Linux下Web服务器环境搭建LNMP一键安装包[20130911更新]
2012年08月14日 ⁄ LNMP ⁄ 评论数 73 ⁄ 被围观 25,200次+ 最新版本:lnmp-2.4 安装说明:请保证服务器能够正常上网.服务器系统时间准确.yum命令可以正常使用! 1. ...
- 给产品经理讲技术,不得不懂的TCP和UDP
TCP/IP协议,你一定经常听说吧,其中TCP(Transmission Control Protocol)称为传输控制协议,IP(Internet Protocol)称为因特网互联协议,好吧,这都是 ...