ajax jsonp跨域
js跨域问题是指:js不同域进行数据传输或通信之间,让我们用ajax到不同的域请求数据。或js获得在不同领域的框架页(iframe)数据。只有到协议、域名、port无论是有不同的。它们被认为是不同的域。
js跨域参考:http://www.cnblogs.com/2050/p/3191744.html
能够通过jsonp实现js跨域,可是获取的数据必须是脚本文件,比如json。
以下介绍jquery.ajax方法
jQuery.ajax(url,[settings]);url是必填的。其它都是选填的。
经常使用格式:
$.ajax({
url:url,
type:"get",
dataType: "jsonp",
sucess:function(data){}
});
主要选项介绍:
1)type:请求方式 ("POST" 或 "GET"),默觉得GET;
2)dataType:
预期server返回的数据类型。假设不指定,jQuery将自己主动依据HTTP包MIME信息来智能推断,比方XML MIME类型就被识别为XML。在1.4中。JSON就会生成一个JavaScript对象,而script则会运行这个脚本。随后server端返回的数据会依据这个值解析后,传递给回调函数。可用值:
"xml": 返回 XML 文档。可用 jQuery 处理。
"html": 返回纯文本 HTML 信息。包括的script标签会在插入dom时运行。
"script": 返回纯文本 JavaScript 代码。不会自己主动缓存结果。除非设置了"cache"參数。'''注意:'''在远程请求时(不在同一个域下)。全部POST请求都将转为GET请求。(由于将使用DOM的script标签来载入)
"json": 返回 JSON 数据 。
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时。如 "myurl?callback=?" jQuery 将自己主动替换 ? 为正确的函数名,以运行回调函数。
"text": 返回纯文本字符串
3)async:(默认: true) 默认设置下。全部请求均为异步请求。
假设须要发送同步请求,请将此选项设置为false。
同步请求将锁住浏览器。用户其他操作必须等待请求完毕才干够运行。注意:用jsonp实现跨域。仅仅能使用异步提交,不管你是否设置async。參见:http://api.jquery.com/jQuery.ajax/
原文:Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.
4)data:发送到server的数据
data选项既能够包括一个查询字符串,比方 key1=value1&key2=value2 ,也能够是一个映射。比方 {key1: 'value1', key2: 'value2'} 。
假设使用了后者的形式,则数据会被转换成查询字符串。
5)jsonp:在一个jsonp请求中重写回调函数的名字。这个值用来替代在"callback=?"这样的GET或POST请求中URL參数里的"callback"部分,比方{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给server。
6)jsonpCallback:为jsonp请求指定一个回调函数名。这个值将用来代替jQuery自己主动生成的随机函数名。
这主要用来让jQuery生成度独特的函数名,这样管理请求更easy。也能方便地提供回调函数和错误处理。
你也能够在想让浏览器缓存GET请求的时候,指定这个回调函数名。
7)username和password选项
假设server须要HTTP认证。能够使用username与password能够通过username和password选项来设置。
8)success(data, textStatus, jqXHR):请求成功后的回调函数。
9)timeout:设置请求超时时间(毫秒)。此设置将覆盖全局设置。
注意。当程序中须要发起多个AJAX请求时,则不用再为每个请求配置请求的參数,全部的选项都能够通过$.ajaxSetup()函数来全局设置。
举例:
$.ajaxSetup({
timeout: 3000,
dataType: 'html',
//请求成功后触发
success: function (data) { show.append('success invoke!' + data + '<br/>'); },
//请求失败遇到异常触发
error: function (xhr, status, e) { show.append('error invoke! status:' + status+'<br/>'); },
//完毕请求后触发。即在success或error触发后触发
complete: function (xhr, status) { show.append('complete invoke! status:' + status+'<br/>'); },
//发送请求前触发
beforeSend: function (xhr) {
//能够设置自己定义标头
xhr.setRequestHeader('Content-Type', 'application/xml;charset=utf-8');
show.append('beforeSend invoke!' +'<br/>');
},
})
版权声明:本文博主原创文章,博客,未经同意不得转载。
ajax jsonp跨域的更多相关文章
- jQuery的ajax jsonp跨域请求
了解:ajax.json.jsonp.“跨域”的关系 要弄清楚以上ajax.json.jsonp概念的关系,我觉得弄清楚ajax是“干什么的”,“怎么实现的”,“有什么问题”,“如果解决存在的问题”等 ...
- ajax jsonp跨域 【转】
跨域的基本原理: JSONP跨域GET请求是一个常用的解决方案, JSONP的最基本的原理是:动态添加一个<script>标签,而script标签的src属性是没有跨域的限制的 ...
- jquery ajax jsonp跨域调用实例代码
今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Lan ...
- Ajax jsonp 跨域请求实例
跨域请求 JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求:它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题. $. ...
- JQuery+ajax+jsonp 跨域访问
Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料. 关于Jsonp更详细的资料请参考http://baike.baidu.com/ ...
- AJAX.JSONP 跨域
var Request = { timeout: 10 * 1000, // 10秒超时 status: 10, statusenum: { Wait: 10 ...
- ajax jsonp跨域处理问题
客户端 html $.ajax({ type : "get", async:false, dataType : "jsonp", jsonp: "js ...
- ajax jsonp 跨域请求
$.ajax({ type:"get", url: "http://localhost/test/a.php", dataType: "jsonp&q ...
- 原生JS封装Ajax插件(同域&&jsonp跨域)
抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax插件,引入一般的项目,传传数据,感觉还是可行的...简单说说思路,如有不正 ...
随机推荐
- hdu3664(递推dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3664 分析:dp[i][j]表示i个数的排列中E值为j的个数.假设现在已有一个E值为j的i的排列,对于 ...
- 画师绘制《进击的巨人》电影版海报 堪比好莱坞- Micro Reading
http://m.baidu.com/from=844b/bd_page_type=1/ssid=0/uid=3151E6C0905477A13653132D762BB6FB/pu=sz%401320 ...
- crm操作安全字段
using System; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Messages; /// <summary> ...
- hdu1151 Air Raid,DAG图的最小路径覆盖
点击打开链接 有向无环图的最小路径覆盖 = 顶点数- 最大匹配 #include <queue> #include <cstdio> #include <cstring& ...
- 强势围观,CSDN代码引用bug
看我写的一篇blog http://blog.csdn.net/laijieyao/article/details/41014355,在代码上引用了微软雅黑的字体,结果代码显示出来把我给惊呆了 竟然 ...
- java中由类名和方法名字符串实现其调用【反射机制】
js里通过eval()函数,在知道某个方法名是可以实现调用该方法,那么在java里边又怎么实现的呢? java里边是通过反射机制来实现,代码如下: import java.lang.reflect.M ...
- JS类定义方式
// 方法1 对象直接量 var obj1 = { v1 : "", get_v1 : function() { return this.v1; }, set_v1 : funct ...
- jps查看java进程中哪个线程在消耗系统资源
jps或ps -ef|grep java可以看到有哪些java进程,这个不用说了.但值得一提的是jps命令是依赖于/tmp下的某些文件 的. 而某些操作系统,定期会清理掉/tmp下的文件,导致jps无 ...
- 设计模式C++达到 3.抽象工厂
简单工厂模式和工厂模式 要求 同类型的产品子类有共同的方法.这限制了产品子类的扩展.抽象工厂能client它提供了一个接口,它是client而不必指定产品的详细信息.创建多个产品系列产品对象.在归为一 ...
- MyEclipse建立JVM内存大小
1.你为什么要设置JVM它的内存大小? 因为假定程序执行过JVM默认的内存大小.他们不会报告传说中的内存溢出异常. Exception in thread "main" java. ...