需求是a服务器下页面b.jsp需要调用b服务器的action CoureseInfoProvideAction.java,用了JQuery+ajax技术,返回json类型的数据:
b.jsp:
<script type="text/javascript">
function showCourseInfo(){
var resourceCode = document.getElementById("resourceCode").value;
jQuery.getJSON("http://10.10.6.31:8099/coureseInfoProvide.jhtml?courseNumber="+resourceCode, function(data) {
if(data!="0"){
document.getElementById('resourceName').value = data.courseName;
document.getElementById('languageType').value = data.lang;
}else{
alert("课件编码不存在!!!");
}
});
}
</script>
<body>
<dt>
<label><span>*</span> 课件名称:</label>
</dt>
<dd>
<input type="text" class="default_txt" id="resourceName" name="resourceName"/>
</dd>
<dt>
<label><span>*</span> 课件编码:</label>
</dt>
<dd>
<input type="text" class="default_txt" id="resourceCode" name="resourceCode" value="112290_eng"/>
<input name="Button2" type="button" class="btn btn_default" onclick="showCourseInfo()" value="Load…" />
</dd>
<dt>
<label>语言属性:</label>
</dt>
<dd>
<select id="languageType" name="languageType" class="mini_sel">
<option>-请选择-</option>
<option value="1">中文</option>
<option value="0">英文</option>
<option value="-1">其他</option>
</select>
<input type="text" class="default_txt" id="languageNote" name="languageNote"/>
</dd>
</body>
CoureseInfoProvideAction.java:
public String process() throws Exception {
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Headers", "x-requested-with");
PrintWriter out = response.getWriter();
if(StringUtil.isBlank(courseNumber)){
Course course = courseService.getValidCourse(courseNumber);
if(course!=null){
StringBuilder sb = new StringBuilder();
String courseName = course.getCourseName();
sb.append("{");
sb.append("\"");
sb.append("courseName");
sb.append("\"");
sb.append(":");
sb.append("\"");
sb.append(courseName);
sb.append("\"");
Integer lang = course.getLang();
sb.append(",");
sb.append("\"");
sb.append("lang");
sb.append("\"");
sb.append(":");
sb.append("\"");
sb.append(lang);
sb.append("\"");
sb.append("}");
out.print(sb.toString());
course = null;
}else{
out.print("0");
}
}
return null;
}
在CoureseInfoProvideAction.java中增加了response对header的处理,用于对跨域提交参数的支持,在StringBuilder中把字符串组装成了json的格式,在页面便于解析、接收参数。
分享到:
相关推荐
JQuery AJAX跨域提交参数、接收json数据.docx
利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
jquery ajax json 跨域不解释,代码很简单 没几句话
都要请求用户json信息,然后再对数据进行处理,起初我和同事们试了很多种方法,使用$.ajax() 无论是get或post方法都会引起uri deny的错误。一番GG之后发现了解决方法,也了解其中的原因。 jquery从1.2开始,.getJSON...
这个就么问题了,成功实现跨域读JSON,然后自定义显示天气预报。
实现jquery ajax跨域。前台页面 和 java代码类
本篇文章主要是对jquery的ajax和getJson跨域获取json数据的实现方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
通过JQuery可以跨域获取JSON数据,但必须弄清楚的是,JQuery不可以跨域获取任意JSON格式的数据,必须要通过服务端输出特定的针对JQuery跨域读取的JSON数据。你可能目前对此仍然毫无了解,没关系,本文将以最简单易懂...
jquery的ajax和getJson跨域.docxjquery的ajax和getJson跨域.docx
我们都知道,AJAX的一大限制是不允许跨域请求。 不过通过使用JSONP来实现。JSONP是一种通过脚本标记注入的方式,它是可以引用跨域URL的js脚本,不过需要提供一个回调函数(必须在您自己的页面上),因此,你可以自己...
本文实例讲述了jquery ajax结合thinkphp的getjson实现跨域的方法。分享给大家供大家参考,具体如下: jquery中post的应该是不能跨域,网上说get的可以跨域,但是我试了一下也不行,然后就进行最后的拼搏getjson,结果...
ajax跨域java,前台jquery,json格式封装,中文传值问题,后台action层设置。sever层接收,传值中文解码
jQuery.getJSON( url, [data], [callback] ) 跨域加载JSON数据。 url: 发送请求的地址data : (可选) 待发送key/value参数callback: (可选) 载入成功时的回调函数主要用于客户端获取服务器JSON数据。简单示例: ...
本文将给您介绍如何使用getJSON来实现异步跨域提交表单
基于jQuery的jsonp ajax跨域请求,
今天小编就为大家分享一篇通过jquery的ajax请求本地的json文件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧