正课:

1. ***自定义插件:

2. Ajax

3. *****跨域访问:

1. ***自定义插件:

前提: 已经用html,css,js实现了

2种风格:

1. jQueryUI侵入式:

1. css应提取到独立的css文件中

强调: 所有插件内的子元素选择器都要以插件父元素class开头,避免与其他插件冲突。

2. 定义独立的js文件:

1. 判断是否引入jQuery

2. 在jQuery的原型对象中添加插件函数

1. 侵入class和自定义扩展属性

2. 绑定事件

3. 使用插件:

引入插件.css,

按插件要求编写HTML内容

引入jQuery

引入插件.js

编写自定义脚本: 查找插件父元素,调用插件API

2. Bootstrap DIV式:

1. css应提取到独立的css文件中: 同jQueryUI方式

2. 定义独立的js文件:

强调: 不需要添加函数,不用侵入

3. 使用插件:

引入插件.css

按插件要求编写HTML内容

在HTML元素上,手动添加class和自定义扩展属性

引入jQuery

引入插件.js

强调: 不需要调用任何插件函数

2. Ajax:

$.ajax({

type:"get/post",

url:"xxx.php",

data: 查询字符串/{ 参数:值, 参数:值, ...}/$form.serialize(),

dataType:"json"//如果返回json,则自动转为对象,

success:function(data){ //请求响应结束且成功

},

error:function(){ //请求响应结束,但出错

},

complete:function(){ //只要请求响应结束

}

})//3.x

.then(function(data){ ... })

dataType: 如果服务端定义了响应的内容类型为applicaton/json, 则$.ajax可自动转换,不必写dataType

$.get("url", data, function(data){...}, dataType)

$(parent).load("url",function(){ ... }) 将返回的内容,填充到parent内

$.getJSON()

$.getScript()

$.post()

3. *****跨域请求:

什么是跨域:

1. 域名不同, 2. 二级域名不同, 3. 端口号不同, 4. 协议

问题: 服务端不允许用xhr对象跨域发送ajax请求

解决: 利用可以跨域的元素(link, script, iframe, img, ... )

1.用script变通实现跨域请求:

JSONP: JSON with padding 填充式json

方案1:

服务端: 将返回的数据,填充在一条js语句中返回

客户端: 用script src="http://xxx/xx.php"

问题: 客户端数据的处理逻辑是在服务端写死的,众口难调

方案2:

服务端: 返回一条函数调用的js语句,将数据作为参数

客户端: 提前定义和服务端同名的js函数

问题: 函数名是在服务器端定死的

方案3:

服务端: 先接受客户端传入的函授名参数(callback)

在返回结果中动态拼接函数名

客户端: script src="xxx.php?callback=函数名"

问题: script是写死的,只能在页面加载时发送一次请求

方案4:

客户端: 不要写死script

在处理函数中,动态创建script,发送请求

在处理函数结尾,删除动态创建的script

问题: 和传统ajax不一致!

方案5:

$.ajax({

type:"",

url:"",

data:...,

dataType:"jsonp",

success:function(){

}

})

2. 通过服务器端开放跨域:

php: header('Access-Control-Allow-Origin:http://请求来自的网址');

正课:

1. ***自定义插件:

2. Ajax

3. *****跨域访问:

1. ***自定义插件:

前提: 已经用html,css,js实现了

2种风格:

1. jQueryUI侵入式:

1. css应提取到独立的css文件中

强调: 所有插件内的子元素选择器都要以插件父元素class开头,避免与其他插件冲突。

2. 定义独立的js文件:

1. 判断是否引入jQuery

2. 在jQuery的原型对象中添加插件函数

1. 侵入class和自定义扩展属性

2. 绑定事件

3. 使用插件:

引入插件.css,

按插件要求编写HTML内容

引入jQuery

引入插件.js

编写自定义脚本: 查找插件父元素,调用插件API

2. Bootstrap DIV式:

1. css应提取到独立的css文件中: 同jQueryUI方式

2. 定义独立的js文件:

强调: 不需要添加函数,不用侵入

3. 使用插件:

引入插件.css

按插件要求编写HTML内容

在HTML元素上,手动添加class和自定义扩展属性

引入jQuery

引入插件.js

强调: 不需要调用任何插件函数

2. Ajax:

$.ajax({

type:"get/post",

url:"xxx.php",

data: 查询字符串/{ 参数:值, 参数:值, ...}/$form.serialize(),

dataType:"json"//如果返回json,则自动转为对象,

success:function(data){ //请求响应结束且成功

},

error:function(){ //请求响应结束,但出错

},

complete:function(){ //只要请求响应结束

}

})//3.x

.then(function(data){ ... })

dataType: 如果服务端定义了响应的内容类型为applicaton/json, 则$.ajax可自动转换,不必写dataType

$.get("url", data, function(data){...}, dataType)

$(parent).load("url",function(){ ... }) 将返回的内容,填充到parent内

$.getJSON()

$.getScript()

$.post()

3. *****跨域请求:

什么是跨域:

1. 域名不同, 2. 二级域名不同, 3. 端口号不同, 4. 协议

问题: 服务端不允许用xhr对象跨域发送ajax请求

解决: 利用可以跨域的元素(link, script, iframe, img, ... )

1.用script变通实现跨域请求:

JSONP: JSON with padding 填充式json

方案1:

服务端: 将返回的数据,填充在一条js语句中返回

客户端: 用script src="http://xxx/xx.php"

问题: 客户端数据的处理逻辑是在服务端写死的,众口难调

方案2:

服务端: 返回一条函数调用的js语句,将数据作为参数

客户端: 提前定义和服务端同名的js函数

问题: 函数名是在服务器端定死的

方案3:

服务端: 先接受客户端传入的函授名参数(callback)

在返回结果中动态拼接函数名

客户端: script src="xxx.php?callback=函数名"

问题: script是写死的,只能在页面加载时发送一次请求

方案4:

客户端: 不要写死script

在处理函数中,动态创建script,发送请求

在处理函数结尾,删除动态创建的script

问题: 和传统ajax不一致!

方案5:

$.ajax({

type:"",

url:"",

data:...,

dataType:"jsonp",

success:function(){

}

})

2. 通过服务器端开放跨域:

php: header('Access-Control-Allow-Origin:http://请求来自的网址');

JQUERY-自定义插件-ajax-跨域访问的更多相关文章

  1. 关于JQuery Ajax 跨域 访问.net WebService

    关于这个 jQuery Ajax跨域访问 WebService 前天整了好几个小时没整明白 今天再看一下 结果突然就顿悟了 1.建一个空webApplication --添加--新建项--web服务( ...

  2. 浅析JSONP-解决Ajax跨域访问问题

    浅析JSONP-解决Ajax跨域访问问题 很久没有写随笔了,总是感觉没时间,其实时间就是...废话少说,前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现 ...

  3. ajax跨域访问的解决方案

    今天的工作中要访问摄像机内部的一个web站点,这就涉及到jquery的ajax跨域访问的问题.我使用的是jquery1.7的版本,下面总结如下: 问题一:一开始用IE调试,总是返回No Transpo ...

  4. Web Api 2(Cors)Ajax跨域访问

    支持Ajax跨域访问ASP.NET Web Api 2(Cors)的简单示例教程演示   随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细.比如前端项目使用Ang ...

  5. Ajax跨域访问解决办法

    方法1. jsonp实现ajax跨域访问示例 jsp代码: <body> <input type="button" onclick="testJsonp ...

  6. ajax 跨域访问的解决方案

    ajax 跨域访问的解决方案 一.什么是跨域: 1.什么样的请求属于跨域: 域名,端口有任何一个不相同都属于跨域: 二.跨域的常用几种解决方案: 1.jsonp: 2.iframe: 3.webcon ...

  7. Hbuilder编辑App时,ajax跨域访问失败问题

    今天试着用Hbuilder写app的前段显示页面,在第一步时就被打住了,ajax异步调用服务器的登录接口时,报错, 显示这样的错误 XMLHttpRequest cannot loadhttp://w ...

  8. JS Ajax跨域访问

    js ajax跨域访问报"No 'Access-Control-Allow-Origin' header is present on the requested resource 如果请求的 ...

  9. ajax跨域访问http服务--jsonp

    在前面一篇文章<Spring Cloud 前后端分离后引起的跨域访问解决方案>里我们提到使用ajax跨域请求其他应用的http服务,使用的是后台增加注解@CrossOrigin或者增加Co ...

  10. Jquery Ajax跨域访问

    一.同源策略 二.跨域的集中方法: 1.服务器端发送请求,服务器作为中继代理(此方法不理解) 2.iframe 3.script标签 通过动过动态生成script标签,并将src指向目标源的方式(im ...

随机推荐

  1. 深度学习原理与框架- tf.nn.conv2d_transpose(反卷积操作) tf.nn.conv2d_transpose(进行反卷积操作) 对于stride的理解存在问题?

    反卷积操作: 首先对需要进行维度扩张的feature_map 进行补零操作,然后使用3*3的卷积核,进行卷积操作,使得其维度进行扩张,图中可以看出,2*2的feature经过卷积变成了4*4.    ...

  2. 关于VS2010 在设计窗口时控件消失问题

    我特喵的,见鬼了. 几个相同的Tabpage中添加相同toolStrip控件,每次都是第二个Tabpage中的消失,但是查看设计器下面又显示控件存在,点击也会出现,运行后就没有了,真的是奇怪. 最后经 ...

  3. 团队作业6—《Spring_Four》团队项目系统设计改进与详细设计

    一.修改完善团队项目系统设计说明书 a.分析<考信项目系统设计说明书>初稿的不足:数据库建模不足 b. 团队项目Github仓库中更新:https://github.com/gzyt/SR ...

  4. jquery中的globalEval()源码分析

    //20170724 huanhua 定义成全局的变量 // 在谷歌浏览器下运行的: // function fun(){ eval('var a=1'); } 此时 定义的 a 就是局部的变量 // ...

  5. Django启动报错笔记

    NO.1: You have 15 unapplied migration(s). Your project may not work properly until you apply the mig ...

  6. ubuntu 快捷键

    gnome-terminal and xfce4-terminal: Ctrl+Shift+c (copy) and Ctrl+Shift+v (paste) xterm: Ctrl+Insert ( ...

  7. MySQL实现批量检查表并进行repair与optimize的方法

    这篇文章主要介绍了MySQL实现批量检查表并进行repair与optimize的方法,结合实例形式分析了MySQL批量修复与优化表的相关技巧,需要的朋友可以参考下 本文实例讲述了MySQL实现批量检查 ...

  8. mysql批量update更新,mybatis中批量更新操作

    在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...

  9. PhoenixFD插件流体模拟——UI布局【Splash | Mist】详解

    液体飞溅 | 水雾 本文主要讲解Splash | Mist折叠栏中的内容.原文地址:https://docs.chaosgroup.com/display/PHX3MAX/Liquid+Splash+ ...

  10. json转换对象中出现null属性的解决方法

    前言:当数据进行json转换时,当属性值为null时,json解析就会中断,导致接下来的数据无法正确获取.原则上来讲服务器端发送的json字符串不允许存在属性值为空的情况,但是如果服务器端发送了nul ...