Ajax Jquery 跨域问题 事件冒泡 浏览器默认操作

前端之家收集整理的这篇文章主要介绍了Ajax Jquery 跨域问题 事件冒泡 浏览器默认操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

JQUERY 介绍@H_301_1@

就是第三方的提供的JS的核心库,通NodeJs ,AngularJS一类的,对原来的js进行二次封装有自己的语法结构特点,在Eclipse上面编码的时候没有提示提示的时候不准确坑,建议用HBuild编码后在复制过去。

关于使用的话 就去查API吧@H_301_1@

JQuery中的Ajax@H_301_1@

Ajax的概念

ajax就是在页面中局部去完成服务端交互技术的框架,代码嵌入到浏览器中,效率高

原理图

常用的get ,post,$.ajax

//异步请求浏览器不会帮你进行默认编码,因此需要手动编码 var parm = {“username”:encodeURI(name)};

1. get方式

当以json格式的返回的是JSON对象

  1. // url,param,回调函数,回掉类型
  2. $.get("${ pageContext.request.contextPath }/ServletDemo1",{"name":"aaa","pass":"123"},function(data){
  3. $("#d1").html(data);},"json")

2. post方式

  1. $.post("${ pageContext.request.contextPath }/ServletDemo1",function(data){
  2. $("#d1").html(data);
  3. },"json");

3. ajax异步请求 两种请求拼接的param是不同的

  1. $.ajax({
  2. url:"${ pageContext.request.contextPath }/ServletDemo1",data:"name=bbb&pass=abc",type:"get",success:function(data){
  3. $("#d1").html(data);
  4. },error:function(data){
  5. },});

JQuery常见几个问题@H_301_1@

1. 表单序列化

alert($(“form”).serialize());对于表单中提交的数据会拼接成为一个字符串

alert($(“form”).serializeArray()); 会拼接成一个字符数组

  1. $(document).ready(function(){
  2.  
  3. alert($("form").serialize());
  4. alert($("form").serializeArray());
  5. });

2. 事件冒泡

就类似于android中的事件传递效果相同,大框中有小框,点小框 大框也会执行

  1. $(document).ready(function(){
  2.  
  3. // 事件冒泡:子元素事件执行时,一并触发父元素相同的事件
  4. $("#outerDiv").click(function(){
  5. alert("outerDiv");
  6. });
  7. $("#innerDiv").click(function(event){
  8. alert("innerDiv");
  9. //方式1:
  10. //return false;
  11. //方式2:通过event 提供函数
  12. event.stopPropagation();
  13. });
  14. });

3. 浏览器默认动作

就是禁用a标签跳转到ref 对应的连接处

  1. $(document).ready(function(){
  2. // href a标签默认行为,阻止
  3. $("a").click(function(event){
  4. alert("谈谈谈");
  5. //方式1:
  6. // return false;
  7. //方式2:
  8. event.preventDefault() ;
  9. });
  10. });

4. 跨域问题

概述

两台服务器直接的交互数据的时候用到跨域

跨域两种类型

1. JS的跨域问题

JS的跨域原理图

代码如下
TomCat1的jSP代码如下

  1. <!-- 需要将函数存在 调用之前,从而保存函数存在-->
  2. <script type="text/javascript"> function showData(data){ alert(data.success); } </script>
  3. <script type="text/javascript" src="http://localhost/web/getData?callback=showData"></script>

TomCat2的Servlet代码如下

  1. //编码
  2. response.setContentType("application/json;charset=UTF-8");
  3.  
  4. //1 请求参数,获得函数名称
  5. String callback = request.getParameter("callback");
  6.  
  7. //2 数据
  8. String jsonStr = "{\"success\":\"用户操作成功\",\"info\":\"提示信息\"}";
  9.  
  10. //3发送浏览器,通知tomcat1,执行执行函数 print("函数(参数)"); ,格式必须按照下面的来
  11. response.getWriter().print(callback + "("+jsonStr+")");

2. Jquery中的AJAX跨域问题

Jquery中的AJAX原理图

相当于是一个匿名函数的问题 将名字去掉而已

  1. $.getJSON("http://localhost/web/getData?callback=?",function(data){
  2. alert(data.success)
  3. });

猜你在找的Ajax相关文章