ajax跨域请求,页面和java服务端的写法
方法一(jsonp):
页面ajax请求的写法:
$.ajax({
		type : "get",
		async : false,
		cache : false,
		url : "http://localhost:8081/a/b",
		data : {
			produ_id: 111,
			sub_id: 0,
			produ_quantity: 1,
			produ_price: 0.0
		},
		dataType : "jsonp",
		jsonp: "jsonpCallback",
		success : function(data) {
			var d = data;
			alert(d);
		},
		error : function() {
			alert('fail');
		}
	});
java服务端写法:
public void ajaxRequest(Params params) {
		HttpServletRequest request = ;
		HttpServletResponse response = ;
		response.setContentType("text/plain");
		response.setHeader("Pragma", "No-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);
          response.setCharacterEncoding("UTF-8");
		Map<String, String> map = new HashMap<String, String>();
		map.put("result", "content");
		PrintWriter out = null;
		try {
			out = response.getWriter();
			String jsonString = JSONObject.toJSONString(map);//随便使用哪个JSONObject都可以,这里只是转为json格式的字符串就行
			String jsonpCallback = request.getParameter("jsonpCallback");// 客户端请求参数
			out.println(jsonpCallback + "(" + jsonString + ")");// 返回jsonp格式数据
		} catch (IOException e) {
			e.printStackTrace();
		} finally{
			out.flush();
			out.close();
		}
	}
方法二:
在服务端设置response.setHeader("Access-Control-Allow-Origin", "*");即可。
Access-Control-Allow-Origin:* 表示允许任何域名跨域访问
如果需要指定某域名才允许跨域访问,只需把Access-Control-Allow-Origin:*改为Access-Control-Allow-Origin:允许的域名
例如:response.setHeader("Access-Control-Allow-Origin", "http://www.client.com");
ajax跨域请求,页面和java服务端的写法的更多相关文章
- AJAX 跨域请求 - JSONP获取JSON数据
		Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术.Ajax 允许在不干扰 Web 应用程序的显示 ... 
- AJAX 跨域请求的解决办法:使用 JSONP获取JSON数据
		由于受到浏览器的限制,ajax不允许跨域通信.如果尝试从不同的域请求数据,会出现安全错误.如果能控制数据驻留的远程服务器并且每个请求都前往同一域,就可以避免这些安全错误.但是,如果仅停留在自己的服务器 ... 
- 【转】AJAX 跨域请求 - JSONP获取JSON数据
		来源:http://justcoding.iteye.com/blog/1366102/ Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流 ... 
- 第113天:Ajax跨域请求解决方法
		一.原生JS实现ajax 第一步获得XMLHttpRequest对象 第二步:设置状态监听函数 第三步:open一个连接,true是异步请求 第四部:send一个请求,可以发送一个对象和字符串,不需要 ... 
- JQ之$.ajax()方法以及ajax跨域请求
		AJAX(Asynchronous javascript AND xml :异步javascript和xml):是一种创建交互式网页应用的网页开发技术.AJAX可以在不重新加载整个页面的情况下与服务器 ... 
- 解决ajax跨域请求  (总结)
		ajax跨域请求,目前已用几种方法实现: 1)用原生js的xhr对象实现. var url="http://freegeoip.net/json/" ... 
- ASP.NET MVC 实现AJAX跨域请求方法《1》
		ASP.NET MVC 实现AJAX跨域请求的两种方法 通常发送AJAX请求都是在本域内完成的,也就是向本域内的某个URL发送请求,完成部分页面的刷新.但有的时候需要向其它域发送AJAX请求,完成数据 ... 
- JQuery的Ajax跨域请求原理概述及实例
		今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuer ... 
- [转载]JQuery的Ajax跨域请求的解决方案
		今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发现JQuer ... 
随机推荐
- hbase与Hadoop
			Hbase是一种低延迟的在线系统,Hadoop是优化吞吐量的离线系统.这种互补关系造就了一种强大的.灵活的数据平台,可以用来搭建水平扩展的数据应用. 
- Thinkpad 小紅點設定
			因为我只需要这么多设置,所以就只写这么多了sudo gedit /etc/rc.local echo -n 240 > /sys/devices/platform/i8042/serio1/se ... 
- android使用library工程问题
			在windows系统下,library project必须和project处于相同的盘符中,因为如果在不同盘符,project.properties中的android.library.referenc ... 
- EditText 监听回车事件 避免2次触发
			// 侦听回车事件 EidtText txtSN = (EditText) findViewById(R.id.txtSN); txtSN.setOnEditorActionListener(new ... 
- ios category
			https://github.com/shaojiankui/IOS-Categories 
- hdu 1228 A + B
			题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1228 A + B Description 读入两个小于100的正整数A和B,计算A+B.需要注意的是: ... 
- orcle   查询数据集对变量赋值函数
			create or replace function test(Name in varchar2 ) return varchar2 is V_CONTAINERDESC CHAR ); BEGIN ... 
- 4.Knockout.Js(事件绑定)
			前言 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数.大部分是用在button,input和连接a上,但是可以在任意元素上使用. 简单示例 <h ... 
- python小算法(二)
			有两个序列a,b,大小都为n,序列元素的值任意整形数,无序: 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小.(华为面试) def diff(sorted_list ... 
- IOS内存管理「3」- 自动释放的基本概念和用法
