最近在项目中面临 ajax 跨域请求问题。
和同事讨论半天,网上查贴一二,附上解决方案
<script>
$(document).ready(
function(){
$("#testBtn").bind("click",loginFun);
//$("#loginBtn").bind("click",loginFun);
//$("#setLoginBtn").bind("click",setLoginPas);
}
)
function loginFun(){
alert(111)
$.ajax({
type:'get',
url:'http://127.0.0.1:8080/ttc/twoDimensionalCodeAction/testAjaxCrossDomain.htm',
beforeSend: function(XMLHttpRequest) {
},
data:"lokey=7758521",
dataType:'jsonp',
jsonp: 'jsoncallback',
success:function(data){
alert(data.keyAlive);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
})
}
</script>
服务器端代码:
public void testAjaxCrossDomain(HttpServletRequest request,
HttpServletResponse response) throws Exception{
System.out.println("接收跨域请求");
String loKey = RequestGetString.getString(request, "lokey");
System.out.println("loKey:"+loKey);
String jsoncallback = RequestGetString.getString(request, "jsoncallback");
PrintWriter out = null;
out = response.getWriter();
JSONObject json = new JSONObject();
Random rand = new Random();
int i = rand.nextInt(100);
StringBuffer abc = new StringBuffer("0123456789");
for(int j = 0;j<100000;j++){
abc.append("0123456789").append("-").append(j).append("-").append("\n");
}
json.put("keyAlive", Integer.toString(i)+" "+loKey+" "+abc.toString());
out.print(jsoncallback+"("+json+")");
}
分享到:
相关推荐
在jQuery中,我们可以使用`.ajax()`或`.getJSON()`方法,加上`jsonp`类型和`callback`参数来发起JSONP请求。例如: ```javascript $.ajax({ url: 'http://example.com/data', type: 'GET', dataType: 'jsonp', ...
jQuery,作为一个强大的JavaScript库,提供了便捷的方式来处理这种问题,特别是通过其Ajax功能进行跨域请求。本示例"Jquery跨域Ajax请求测试"将详细讲解如何利用jQuery实现这一功能。 首先,了解同源策略是理解跨域...
4. AJAX跨域: AJAX本身不支持跨域,但是通过CORS(Cross-Origin Resource Sharing,跨源资源共享)机制,可以实现AJAX的跨域请求。服务器需要在响应头中添加`Access-Control-Allow-Origin`字段,允许指定的源进行...
本文将详细介绍JSONP的工作原理以及如何在ASP.NET网站开发中应用JSONP解决Ajax跨域问题。 首先,理解JSONP的基本概念。JSONP是一种非官方的数据交换格式,它的核心思想是利用HTML中的`<script>`标签不受同源策略...
ajax跨域请求,jquery.jsonp插件
- **前端**: 使用jQuery的`$.ajax()`方法发起GET类型的JSONP请求,通过设置`dataType`为`jsonp`以及指定`jsonp`参数来告知jQuery回调函数的名字。 - **后端**: 设置响应头以允许跨域访问,并通过获取`jsonpCallback`...
【Ajax跨域请求WebService.asmx】是一个常见的Web开发技术应用场景,主要涉及到JavaScript的Ajax技术、C#编程语言以及ASP.NET的WebService组件。Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的...
在这个实例中,我们使用 jQuery 的.ajax() 方法来发送 POST 请求,并指定 dataType 为 jsonp,以便使用 JSONP。 ```javascript $.ajax({ type: "post", url: "ajax.php", dataType: "jsonp", jsonp: "callback...
url: 'http://example.com/api/data?callback=handleData', // JSONP请求 dataType: 'jsonp' }); ``` 在这个示例中,服务器返回的脚本可能是`handleData({"key": "value"})`,浏览器执行这个脚本,将数据传入预定...
在JavaScript的世界里,由于同源策略的限制,浏览器禁止了不同源之间进行AJAX通信,但JSONP(JSON with Padding)作为一种巧妙的方式,允许我们绕过这个限制,实现在jQuery中进行跨域请求。本篇文章将深入探讨JSONP...
AJAX跨域问题的出现是由于浏览器的安全机制,旨在防止恶意网站通过脚本访问其他网站的数据,保护用户隐私。但是,在某些场景下,比如前后端分离的应用、API接口调用等,跨域请求是必要的。针对这一需求,有多种解决...
由于同源策略的限制,Ajax通常无法跨域请求,但JSONP通过动态创建`<script>`标签并指定一个回调函数来解决这个问题。服务器返回的响应是一个JavaScript函数调用,带有JSON格式的数据作为参数。例如: ```javascript...
**jQuery实现Ajax跨域访问** 在Web开发中,由于同源策略的限制,JavaScript通常只能对同一域名下的资源进行操作。然而,有时我们需要从不同源获取数据,这就是跨域访问的需求。jQuery通过Ajax提供了跨域请求的能力...
今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuery对于Ajax的跨域请求有两类解决...
4. **服务器支持**:服务器端需要支持JSONP请求,并根据请求中的回调函数名返回合适的JavaScript代码。 总结,JSONP是一种简单且广泛使用的跨域解决方案,尤其适用于那些不支持CORS的旧版本浏览器。然而,考虑到...
在给定的部分内容中,使用了jQuery库来实现JSONP请求。下面是一段具体的代码示例: ```javascript $(document).ready(function(){ var url = 'http://localhost:8080/WorkGroupManagment/open/getGroupById' + '?...
ajax跨域实例 Ajax 跨域操作是指在不同的域名、协议或端口之间进行 Ajax 请求的操作。由于浏览器的同源策略限制,跨域操作需要在前端和服务端指定共同规则,以便实现安全的数据交换。在本文中,我们将讨论两个 ...
console.error("Jsonp请求失败:", textStatus, errorThrown); } }); ``` 在这个例子中,jQuery会自动处理回调函数的生成和调用,以及错误处理。只需指定URL和处理成功后的回调函数即可。 在Servlet环境中,...