JavaScript跨域调用的一种方案配置

原文参考 

这里采用的是jsonp的方式,

场景为 请求端A,申请跨域调用 被请求端B 的一个action

请求端B的需要配置action以及编写对应逻辑,struts2下一种配置方式如下

1.貌似配置标签会被过滤,无法直接上源码了

   

      callback

   

需要注意的是,因为json-default拓展,需要struts2-json-plugin.jar的支持

callbackParameter的名字不可换(应该是和ajax解析有关)

callback需要和请求端设定的jsonp一致。

2.action实现,用上述配置的话,action的返回内容可以通过action类中的callback变量传递

请求A端

$.ajax({

  type : "get",

  async : true,

  url : localhost:8080/sshweb/testAction,

  data : {'id',123},

  dataType : "jsonp",

// 返回时,参数的名字,会默认调用callbackfunction(callback),需要对方指定一个该名字的返回值,否则调用时找不到参数就会出错

jsonp : "callback",

// 回调函数

// jsonpCallback : pcallback

}).done(function(data) {

// 调用成功处理逻辑

}).fail(function() {

// 调用失败处理逻辑

});

//调用成功的情况的回调不用这种链式done的写法,通过指定jsonpCallback也可以。

跨域调用成功后,会自动执行一次jsonpCallback组装callback参数的方法

你可能感兴趣的:(JavaScript跨域调用的一种方案配置)