json响应数据在跨域请求中不可用

时间:2015-01-22 15:21:02

标签: jquery spring-mvc cross-domain jsonp

使用jquery

发出跨域请求
function getTrackingWigetURL() {
$.ajax({
url: 'http://anotherdomain/getdetails',
dataType: 'jsonp',
jsonpCallback: 'MyJSONPCallback', 
success: function(data){
alert(data);
},error: function(response){
alert(response);
}
});
}

我的控制器代码是

@RequestMapping(value = "/getdetails")
public @ResponseBody
String getdetails(HttpServletRequest request, HttpServletResponse response) {
return "test";
}

服务器调用很好。但执行后总是进入错误块。错误块中警告的“数据”没有从控制器发送我的响应数据。但是当我在firebug中检查时,我能够看到相应请求的响应是从控制器发送的响应文本。我无法弄清楚我错过或做错了什么

1 个答案:

答案 0 :(得分:0)

这确实与Same Origin Policy有关,因此在浏览器中强制执行安全规则。

处理这些案件的两种方法:

请注意,您可以在4.1.0之前使用第三方库或自定义代码来实现 - 我只是指出了官方的Spring支持。