下面是最新的。注意只有spring4.3以上(包含4.3)才有效。
jackson-databind@H_404_18@
附上maven配置,一看就懂了
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.5</version>
</dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.5</version>
</dependency>
2.后台设置,springmvc,中只要在类上设置一个注解@CrossOrigin,那么这个类就可以接受跨域申请。注意只有spring4.3以上(包含4.3)才支持注解@CrossOrigin,这点很多文章没提到。
@CrossOrigin 的具体只接受某个域名的配置自己去网上查帮助。默认是允许所有域名访问。@H_404_18@
具体的代码如下,
@CrossOrigin( maxAge = 3600)//配置这里就行了
@Controller
@RequestMapping("/personController")
public class PersonController {
}
@RequestMapping(value="getjsonp/{id}",method=RequestMethod.GET)
@ResponseBody
public Collection getjson(@PathVariable("id") Integer id,String callback) throws Exception{
}
@RequestMapping(value="postjson",method=RequestMethod.POST)
public String postjson(@RequestBody Person p) throws Exception{
}
@H_404_18@
app@H_404_18@
.controller(@H_404_18@
'firstController'@H_404_18@
,@H_404_18@
function@H_404_18@
($scope,$http) {@H_404_18@
// $http.get('http://localhost:8080/SSM1/personController/getjsonp/100').success(function (data,status,headers,config){@H_404_18@
// console.log(data);@H_404_18@
// console.log(status);@H_404_18@
// console.log(headers);@H_404_18@
// console.log(config);@H_404_18@
// }@H_404_18@
//@H_404_18@
// ).error(function (data,config) {@H_404_18@
// })@H_404_18@
@H_404_18@
url@H_404_18@
:@H_404_18@
'http://localhost:8080/SSM1/personController/postjsonp'@H_404_18@
,@H_404_18@
@H_404_18@
method@H_404_18@
:@H_404_18@
'POST'@H_404_18@
,122)">data@H_404_18@
: {@H_404_18@
id@H_404_18@
:@H_404_18@
1@H_404_18@
,@H_404_18@
name@H_404_18@
:@H_404_18@
'@H_404_18@
美国@H_404_18@
'@H_404_18@
,122)">age@H_404_18@
:@H_404_18@
16@H_404_18@
}@H_404_18@
@H_404_18@
console@H_404_18@
.@H_404_18@
log@H_404_18@
(@H_404_18@
"success!"@H_404_18@
);@H_404_18@
})@H_404_18@
});@H_404_18@
@H_404_18@
@CrossOrigin( maxAge = 3600)
@Controller
@RequestMapping("/personController")
public class PersonController {
@RequestMapping(value="getjson/{id}",String callback) throws Exception{
Person p1= new Person(1,"aa",30);
Person p2= new Person(2,"bbb",50);
HashMap ps = new HashMap<Integer,Person>();
ps.put(1,p1);
ps.put(2,p2);
System.out.println(id.toString());
System.out.println(callback);
System.out.println("new Person p");
return ps.values();
}
//获取前端发出的post请求
@RequestMapping(value="postjson",method=RequestMethod.POST)
public String postjson(@RequestBody Person p) throws Exception{
System.out.println("id:"+p.getId());
System.out.println("name:"+p.getName());
System.out.println("age:"+p.getAge());
return "ok";
}
}