`
blackhost
  • 浏览: 14323 次
社区版块
存档分类
最新评论

Jquery跨域调用struts2的Action返回json数据易出现的问题

 
阅读更多
最近一个项目使用到了JQuery调用Struts2的Action返回的json数据,因为涉及到跨域的操作,所以选择对跨域操作已经做了很好兼容的getJson方法,但实际应用中发现前端也买年的jquery虽然可以调用后台Action类成功,但总是无法调用回调函数!


经过不断的查找,最终确定原因所在,原来跨域调用想要成功调用回调函数,必须是服务器端明确知道回调函数的地址,因此有两个必须的要素要注意:

1、调用的URL必须有callback=?,这个名字可以自己起,不一定叫这个,但是必须有

2、struts2的配置文件里,必须加上 <paramname="callbackParameter">jsoncallback</param>

这里面的这个回调参数名称,也好前端传过来的一致。

下面贴出我的使用到的代码片段:

前端页面:

$.getJSON('http://xxxxxxx.xhtml?'+$('#regForm').serialize()+"&jsoncallback=?", function(data) {
alert(data);   
});


后端的struts-json.xml标定返回值部分,注意要包含在result段里
<result name="jsonres" type="json">
<param name="callbackParameter">jsoncallback</param>
</result>

其它的参照网上struts2对json数据的封装写法即可,最好采用annotion的那种方式

分享到:
评论

相关推荐

    struts2.3.20生成返回json 浏览器解析json

    这里,`getJsonResult`方法将被JSON插件调用,返回一个包含数据的Map,这些数据将在JSON响应中发送到浏览器。 为了使浏览器能够解析JSON,我们需要在JSP或HTML页面中使用JavaScript。可以使用JSON.parse()方法或者...

    Jquery+Struts2+JSON处理

    这样,当你在jQuery的AJAX请求中指定URL为`yourAction.action`时,Struts2会返回JSON格式的`data`对象。 3. **数据绑定和处理** 在jQuery的AJAX回调函数中,你可以接收到JSON响应,并将其数据绑定到DOM元素上。...

    struts2ajax

    例如,使用jQuery的`$.ajax()`或`$.getJSON()`方法发起请求,设置URL指向Struts2的Action,并处理返回的数据。 3. **Struts2插件支持**:Struts2提供了Ajax插件,如`struts2-jquery-plugin`和`struts2-json-plugin`...

    网上一些json和struts的入门资料

    总的来说,这个压缩包提供了关于JSON和Struts 2的基础知识,涵盖了从数据交换格式到Web框架的使用,再到跨域通信的解决方案。对于想要踏入Web开发领域的初学者,这些资料无疑是宝贵的资源,可以帮助他们快速理解和...

    struts和ajax应用例子

    例如,使用jQuery的`$.ajax()`或`$.getJSON()`,指定请求URL(对应Struts Action的路径)和成功回调函数,用于处理返回的JSON数据。 5. **处理返回数据**:在Ajax请求的回调函数中,解析返回的JSON数据,并根据需要...

    jquery.form.js(最新的)

    7. **跨域问题**:如果jQuery.form.js与Struts 1.x不在同一个域下,可能需要处理跨域问题。这可能涉及修改Struts的配置,或者在服务器端添加允许跨域的响应头。 8. **安全考虑**:使用AJAX提交时,务必考虑安全性,...

    ajax struts 例子

    3. **Ajax与Struts的结合**:在Struts中,Ajax请求通常会调用一个特定的Action,这个Action处理请求并返回部分HTML或JSON数据。JSP页面中的JavaScript代码负责发起Ajax请求,并接收和处理响应数据。 4. **创建Ajax...

    ajax-struts

    1. **Struts Action与Ajax请求**:了解如何配置Struts Action来处理Ajax请求,包括设置Action的返回类型,以及处理JSON或XML格式的数据。 2. **JavaScript库**:使用如jQuery这样的库来创建Ajax请求,处理DOM操作和...

    Struts2.0文件上传进度

    注意,由于文件上传的异步特性,实现进度条可能涉及到跨域问题,需要确保服务器端配置正确,允许跨域请求。此外,为了提高用户体验,我们还需要处理异常情况,比如网络中断、文件大小超过限制等。 总之,通过Struts...

    精通JAVA Web整合开发jsp+ajax+struts+hibernate 第07章 Java EE应用中的异步通信技术AJAX

    在Struts中,我们可以创建一个专门处理AJAX请求的Action,该Action将根据请求参数执行相应的业务逻辑,并返回JSON或XML格式的数据。前端JavaScript代码接收到这些数据后,可以动态更新DOM(Document Object Model)...

    ajax请求返回的数据看不到回调函数没有执行也没报错

    项目使用SSH(Struts2 + Spring + Hibernate)架构,其中$.post请求的目标是一个Struts2 Action,该Action需要返回一个`Collection&lt;Privilege&gt;`对象。`Privilege`类与`User`类之间存在关联,即每个`Privilege`对象...

    转ajax

    在实际应用中,可以使用一些库,如jQuery,它简化了JavaScript的DOM操作和Ajax调用,使得在Struts中集成Ajax变得更加简单。此外,还有一些专门为Struts设计的Ajax库,如DWR(Direct Web Remoting),它提供了一种...

Global site tag (gtag.js) - Google Analytics