jquery的跨域

作者在 2011-11-29 14:56:46 发布以下内容
//客户端请求
$(document).ready(function(){
    $("#c").click(function(){
        /*$.getJSON("http://localhost/test?jsoncallback=?", function(data){
            alert(data["a"]);
        });
*/
        $.ajax({
            url:"http://localhost/test/index.jsp",
            type:"GET",
            cache:false,
            dataType:"jsonp",
            jsonp:"jsoncallback",
            success:function(data){
                alert(data['a']);
            }
        });
    });
});
 
//服务端响应
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%String jsoncallback = request.getParameter("jsoncallback");
out.println(jsoncallback+"({a:'b'})");
//注意输出内容为:获取的jsoncallback值+括号,括号中为json字符串
%>
 其中jsoncallback为客户端与服务段交互的通道,jquery会生成一个临时的对象赋值给jsoncallback,
并将这个对象发送到服务端,服务端获取到这个对象后对其赋值(即对象的属性),然后返回给客户端,
jquery再次获取到这个对象后封装为data,data就是我们请求的json对象,可以拿到他的值了。
mine | 阅读 845 次
文章评论,共0条
游客请输入验证码
浏览16163次