最近在开发中碰到jQuery跨域调用问题.
下面记录这次解决问题的方法.
1.服务端: 在struts2配置文件中增添下面配置参数
添加
"<param name="callbackParameter">jsoncallback</param>"
写道
<action name="getTestJson" class="com.hikin.TestAction">
<result type="json">
<param name="callbackParameter">jsoncallback</param>
<param name="root">result</param>
</result>
</action>
2.客户端调用:
写道
方法一:
var url="http://192.168.1.149/hikin/getTestJson.html?jsoncallback=?
";
jQuery.getJSON(url,null,function(rs){
alert(rs);
});
方法二:
jQuery.ajax({
type: "get",
cache: false,
dataType: "jsonp",
jsonp: 'jsoncallback',
url: url,
data: data,
async: false,
success: function(rs){
alert(rs);
}
});
下面是网上关于jsonp的介绍-
一种叫JSON with Padding
的技术,简称 JSONP
1.JSONP(JSON with
Padding-填充json数据也就是常用的json跨域方式):利用script标签,通过特定的src地址的调用,来执行一个客户端的js函数,在
服务器端生成相对的数据(json格式)并以参数的形式传递给这个客户端的js函数并执行这个函数,前提是需要服务器端的数据输出支持。
2.
为什么使用JSONP:由于 JSON 只是一种含有简单括号结构的纯文本,因此许多通道都可以交换 JSON
消息。因为同源策略
的限制,我们不能在与外部服务器进行通信的时候使用
XMLHttpRequest。而JSONP是一种可以绕过同源策略的方法,即通过使用 JSON 与 <script>
标记相结合的方法,从服务端直接返回可执行的JavaScript函数调用或者JavaScript对象。
3.谁在使用JSONP:dojo、JQuery、Youtube GData API 、Google Social Graph API 、Digg API 、GeoNames webservice、豆瓣API、Del.icio.us JSON API等。
4.jQuery中跨域访问的核心原理:JS文件注入,因为因为script标签的src属性是可以跨域的,利用
script标签的src属性直接返回非本域名下的数据,具体采用的方式称为:jsonp
分享到:
相关推荐
jQuery跨域调用主要是通过JSONP(JSON with Padding)和CORS(Cross-Origin Resource Sharing)这两种机制来实现的。JSONP是一种非官方的跨域数据交互协议,而CORS是W3C标准,允许服务器声明哪些来源可以访问其资源...
2. **JQuery跨域**: - 跨域是浏览器的一项安全策略,限制了JavaScript脚本只能访问同一源下的资源。JQuery提供了解决跨域问题的方法,如JSONP(JSON with Padding)和CORS(Cross-Origin Resource Sharing)。 - ...
JSONP利用这一点,服务器将数据封装在一个JavaScript函数调用中返回,客户端通过动态创建`<script>`标签来加载这个函数并执行,从而实现跨域数据交互。 在jQuery中,使用JSONP主要通过`$.ajax()`或`$.getJSON()`...
JQuery的跨域解决方案主要依赖于JSONP(JSON with Padding)技术。JSONP是一种绕过同源策略的方式,它利用HTML中的`<script>`标签没有同源策略限制的特点。当jQuery使用`dataType: 'jsonp'`时,它实际上是在做以下几...
本文将详细解释如何利用jQuery通过JSONP(JSON with Padding)的方式实现跨域调用WebService。 #### 1. JSONP 的基本原理 JSONP 是一种解决跨域请求的有效手段,它通过动态创建`<script>`标签来请求跨域的数据,并...
在jQuery中,JSONP是一种实现跨域Ajax请求的方法,尤其适用于那些不支持CORS(Cross-Origin Resource Sharing)的旧版浏览器。 `jquery-jsonp-master.zip`这个压缩包文件包含了一个专门用于jQuery的JSONP插件,旨在...
在JavaScript的世界里,由于同源策略的限制,浏览器禁止了不同源之间进行AJAX通信,但JSONP(JSON with Padding)作为一种巧妙的方式,允许我们绕过这个限制,实现在jQuery中进行跨域请求。本篇文章将深入探讨JSONP...
本篇文章将详细探讨如何使用JQuery实现跨域调用Windows Communication Foundation (WCF)服务。 **一、理解跨域** 跨域是指浏览器的同源策略限制了JavaScript从一个域名下的网页向另一个域名下的资源发送Ajax请求。...
本示例"Jquery跨域Ajax请求测试"将详细讲解如何利用jQuery实现这一功能。 首先,了解同源策略是理解跨域问题的关键。同源策略是浏览器为了保障用户安全而设定的一项机制,它规定了只有来自同一协议、同一域名和同一...
本文将详细探讨JSONP的工作原理以及如何在实际项目中使用它来跨域获取JSON数据。 ### JSONP简介 JSONP全称为"JSON Padding",它并不是JSON的一种新格式,而是一种利用动态创建`<script>`标签来绕过同源策略的技巧...
### JSONP实现Ajax跨域访问 #### 一、引言 JSONP(JSON with Padding)是一种用于解决跨域数据访问的技术。由于同源策略(Same-Origin Policy)的存在,JavaScript/Ajax只能请求同源的资源,这给需要跨域访问数据...
1.3.3 jQuery-JSONP跨域 jQuery提供了JSONP的支持,通过$.ajax方法的dataType参数设置为"jsonp",可以轻松发起JSONP请求。jQuery会自动生成一个唯一的回调函数名,并将其作为参数传递给服务器,服务器返回的数据应以...
今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友
本示例“ASPNET_JSONP_demo(jq跨域)”正是展示了如何在 ASP.NET 平台上构建一个 JSONP 服务,并利用 jQuery 进行跨域调用。 首先,我们需要理解 JSONP 的工作原理。JSONP 是通过动态创建 `<script>` 标签来请求数据...
**Ajax跨域请求问题与jQuery JSONP解析** 在Web开发中,Ajax技术被广泛用于实现页面的异步更新,但浏览器的同源策略(Same-Origin Policy)限制了Ajax请求只能向同源(协议、域名、端口均相同)的服务器发送。这在...
### Jquery跨域Json请求处理详解 #### 一、跨域问题概述 在现代Web开发中,跨域问题是一个常见的技术挑战。简单来说,当一个网页尝试从不同的源(源可以理解为协议、域名或者端口号)加载资源时,就会遇到跨域限制...
总结来说,"jquery跨域获取json"是一个关于JavaScript编程和jQuery库如何通过JSONP技术解决跨域获取数据的问题。在实际开发中,了解并掌握这一技术对前端开发者尤其重要,因为很多API和数据服务都是部署在不同的域名...
JSONP(JSON with Padding)是一种跨域数据交互协议,它利用了`<script>`标签可以跨域请求资源的特性来实现数据的交换。在Web开发中,由于浏览器的同源策略限制,JavaScript通常无法直接访问不同源的资源,但JSONP...
### JSONP跨域调用详解 #### 一、JSONP定义及原理 **JSONP**(JSON with Padding)是一种被广泛采用的技术,用于绕过浏览器的同源策略限制,实现跨域数据请求。虽然JSONP并不是一种正式的标准或协议,但它在实际应用...
### ASP.NET配合jQuery解决跨域调用的问题 #### 跨域问题概述 在现代Web开发中,跨域问题是一个常见的安全限制机制。浏览器为了保护用户的隐私数据,实施了同源策略(Same-origin policy)。该政策规定,来自不...