`

JQuery的Ajax跨域请求的解决方案

    博客分类:
  • js
 
阅读更多
       今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发现JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。分别是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式。
        什么是jsonp格式呢?API原文:如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。意思就是远程服务端需要对返回的数据做下处理,根据客户端提交的callback的参数,返回一个callback(json)的数据,而客户端将会用script的方式处理返回数据,来对json数据做处理。JQuery.getJSON也同样支持jsonp的数据方式调用。

        客户端JQuery.ajax的调用代码示例:

$.ajax({
	type : "get",
	async:false,
	url : "http://www.xxx.com/ajax.do",
	dataType : "jsonp",
	jsonp: "callbackparam",//服务端用于接收callback调用的function名的参数
	jsonpCallback:"success_jsonpCallback",//callback的function名称
	success : function(json){
		alert(json);
		alert(json[0].name);
	},
	error:function(){
		alert('fail');
	}
});
    服务端返回数据的示例代码:

public void ProcessRequest (HttpContext context) {
    context.Response.ContentType = "text/plain";
    String callbackFunName = context.Request["callbackparam"];
    context.Response.Write(callbackFunName + "([ { name:\"John\"}])");
}

分享到:
评论

相关推荐

    jquery的ajax跨域请求原理和示例

    直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。分别是JQuery...

    ajax跨域解决办法

    本资源主要介绍了AJAX跨域的解决办法,以及解决方案间的比较

    jQuery跨域问题解决方案

    通过XMLHTTPRquest请求不同域上的数据,原来js跨域访问是后台有个处理路径“/test”的函数。下面给大家介绍jQuery跨域问题解决方案,有需要的小伙伴可以参考下

    JQuery的Ajax跨域请求原理概述及实例

    直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。分别是JQuery...

    JQuery Ajax 跨域访问的解决方案

    XMLHttpRequest访问代理 四、本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 JS创建动态脚本 今天主要讨论第4中解决方案,这个和上个的区别就是请求是使用[removed]标签来请求的,这个要求

    ajax跨域请求js拒绝访问的解决方法

    求解决办法 代码如下: ajax{ url :“http://xxxx/app”...求方法 您可能感兴趣的文章:跨域请求之jQuery的ajax jsonp的使用解惑AJAX跨域请求json数据的实现方法jQuery.ajax 跨域请求webapi设置headers的解决方案JQuer

    JQuery Ajax执行跨域请求数据的解决方案

    今天小编就为大家分享一篇关于JQuery Ajax执行跨域请求数据的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    jQuery.ajax 跨域请求webapi设置headers的解决方案

    需要通过服务器端设置响应头、正确响应options请求,正确设置 JavaScript端需要设置的headers信息方能实现,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下

    ie9 ajax请求失败解决方案

    完美解决ie9 ajax 请求失败问题,解决ie9 跨域请求失败问题,欢迎下载,亲测有效。jquery.XDomainRequest.js

    轻松搞定jQuery+JSONP跨域请求的解决方案

    了解了jsonp之后,大家应该也都明白了,jsonp主要就是用来实现跨域的获取数据,今天我们就来详细探讨下如何在实际中应用jsonp实现跨域

    Ajax请求WebService跨域问题的解决方案

     用Jquery中Ajax方式在asp.net开发环境中WebService接口的调用 2、出现的问题 原因分析:浏览器同源策略的影响(即JavaScript或Cookie只能访问同域下的内容); 3、解决方案: (1) JSONP:只支持GET方式 (2) CROS:...

    js跨域请求的5中解决方式

    跨域请求数据解决方案主要有如下解决方法: JSONP方式 表单POST方式 服务器代理 Html5的XDomainRequest Flash request 分开说明: 一、JSONP: 直观的理解: 就是在客户端动态注册一个函数 function a(data),然后...

    浅析JSONP之解决ajax跨域问题

    本文主要讲解了如何去解决AJAX跨域的问题,从跨域的简单原理到JONP实现模式详细的讲解整个解决方案,最后利用jQuery可以很方便的实现JSONP来进行跨域访问。

    Ajax学习文档(无门槛-精)Markdown File (.md)

    ajax-Post和Get请求与传统请求、ajax乱码问题、ajax同步异步、ajax代码封装jQuery库、跨域问题以及解决方案、ajax搜索联想 自动补全、附录:HTTP状态信息

    jquery-jsonp.js

    1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准;  2、不过我们又发现,Web页面上调用js文件时则不受是否跨域的影响...

    JSONP原理及简单实现

    JSONP就是目前主流的实现跨域通信的解决方案。 虽然在在jquery中,我们可以通过$.ajax的dataType设置为jsonp来调用jsonp,但是jsonp和ajax的实现原理一个关系都木有。jsonp主要是通过script可以链接远程url来实现...

Global site tag (gtag.js) - Google Analytics