最近在用H5开发游戏一个小游戏,后台使用Java写的,调试过程中出现了如下错误:
XMLHttpRequest cannot load http://localhost:8080/getname. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
出现上述错误就是需要解决跨域问题
一般有两种解决方法
1.后台返回的数据格式改成jsonp的形式
2.后台response添加header,response.setHeader("Access-Control-Allow-Origin", "*");
"Access-Control-Allow-Origin", "*" 表示所有网站都可以访问
或者可以指定某个具体域名访问response.setHeader("Access-Control-Allow-Origin", "http://baidu.com");
代码实例如下:(也可以在拦截器中设置response.setHeader("Access-Control-Allow-Origin", "http://baidu.com"))
@Controller
public static class TestAjaxController {
@RequestMapping(value = "/test")
@ResponseBody
public String getLoactionInfo(String userId, HttpServletResponse response)
throws Exception {
response.setHeader("Access-Control-Allow-Origin", "*");
//.......
return ".....";
}
}
3.或者通过修改服务器上apache配置来解决,参考资料
http://www.jsjtt.com/xitongyingyong/Apache;Nginx/2013-10-30/29.html