kalit
2017-08-21 09:23
采纳率: 0%
浏览 2.5k

ajax如何解决跨域问题?

后端是用eclipse开发的java后台,前端使用webstorm,前端html文件中通过ajax请求
后台接口,由于后台和前端共用一个端口没发同时访问,所以我修改了eclipse的端口为8088,webstorm的端口为8080,。然后在html中通过ajax请求后台接口地址Http://localhost:8088/test/user.json;ajax一直走失败的方法,在浏览器错误Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://10.20.153.16:8080' is therefore not alloed access.请大神们帮忙看下怎么解决

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • threenewbee 2017-08-21 09:48
    评论
    解决 无用
    打赏 举报
  • zhenglichenboy 2017-08-21 09:59

    j服务器端(java端)接口设置如下信息:
    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
    response.setHeader("Content-Type", "application/json;charset=utf-8");

    比如:
    public void setMessage(HttpServletRequest request, HttpServletResponse response,int userId){
    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
    response.setHeader("Content-Type", "application/json;charset=utf-8");
    System.out.print("跨域");
    }

    评论
    解决 无用
    打赏 举报
  • zhenglichenboy 2017-08-21 10:03

    补充上条:
    我们之前开发,跨域问题都是在服务端同意解决,java会写一个基础的BaseAPI把支持跨域的方法写进去,所有的接口会去继承它,需要跨域的时候调用就行了,方便一些

    评论
    解决 无用
    打赏 举报
  • googleoyyp 2017-08-21 10:08

    使用jsonp可以解决你跨域问题

    评论
    解决 无用
    打赏 举报
  • Laherz 2017-08-22 01:55

    前面的都太麻烦了 ,使用nginx 配置区域 解决跨域 代码是啥样忘了 百度下

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题