JAVA和ajax用JSONP方案实现跨域(附源码)

JAVA中AJAX用JSONP方案实现跨域

前端AJAX请求

 dataType为jsonp

增加参数 jsonpCallback

值为回调函数,需自己用js实现

<script type="text/javascript" >
  var openurl="http://www.abc.cn/Test2";
	$.ajax({
	       type: "get",
		   dataType: "jsonp", 
		   url: openurl,
		   jsonpCallback:"showData",
		    async: false, 
			error:function(E){
				 alert( "return1: " + E );},
		   success: function(msg){
		   }
		});
	function showData(msg){
			var result = JSON.stringify(msg);
			alert(result);
			$("#a").text(msg.nickname);
		}	
	</script>

后端java代码,响应内容需用回调函数名包含

如,回调函数为showData

响应内容为"showData("+userinfo+")"

package weixin;

import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONException;
import org.json.JSONObject;

public class TestServlet2 extends HttpServlet {
	
	public void service(HttpServletRequest request,
			HttpServletResponse response)
			throws ServletException,java.io.IOException
		{
			response.setContentType("text/html;charset=utf-8");
			PrintWriter out= response.getWriter();
			
			String userinfo = "{    'openid':' OPENID',"+
			"'nickname': '路飞',"+
			"'sex':'1',"+
			"'province':'PROVINCE',"+
			"'city':'CITY',"+
			"'country':'COUNTRY'"+
			"}";
			try {
				JSONObject json= new JSONObject(userinfo);
				out.println("showData("+userinfo+")");
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	
		}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值