zoukankan      html  css  js  c++  java
  • javascript跨域请求RESTful Web Service

    跨域请求RESTful Web Service


    当我们用js请求RESTful Web Service的时候,通常会出现跨域无法访问的问题,也就是无法正常得到我们要的值。jsonp是个解决问题的方法。但是,我们希望访问RESTful Web Service就像一般的ajax方法一样,不用每个都去搞一个jsonp和callback。这就需要我们在服务端进行一些设置,下面我用一个简单的Filter来进行说明,其他比较复杂的情况根据自己的需求进行改动。

    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletResponse;
    import org.springframework.stereotype.Component;
    
    public class SimpleCORSFilter implements Filter {
    
    	public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    		HttpServletResponse response = (HttpServletResponse) res;
    		response.setHeader("Access-Control-Allow-Origin", "*");
    		response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
    		response.setHeader("Access-Control-Max-Age", "3600");
    		response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
    		chain.doFilter(req, res);
    	}
    
    	public void init(FilterConfig filterConfig) {}
    
    	public void destroy() {}
    
    }   
    
    

    Note:

    • Access-Control-Allow-Origin 为允许哪些Origin发起跨域请求. 这里设置为"*"表示允许所有,通常设置为所有并不安全,最好指定一下。
    • Access-Control-Allow-Methods 为允许请求的方法.
    • Access-Control-Max-Age 表明在多少秒内,不需要再发送预检验请求,可以缓存该结果
    • Access-Control-Allow-Headers 表明它允许跨域请求包含content-type头,这里设置的x-requested-with ,表示ajax请求

    如果大家有什么更好的方法,求指点

  • 相关阅读:
    GPU 版 TensorFlow failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED
    Python -- 值转换为字符串的两种机制
    Python
    vim中注释多行python代码
    HTTP协议状态码详解(HTTP Status Code)
    关于Python报错:SyntaxError: Non-ASCII character 'xe5' in file的解决方法
    Linux如何查看进程、杀死进程、启动进程等常用命令
    vim 如何设置显示行号和缩进
    一、报错
    二、极光推送
  • 原文地址:https://www.cnblogs.com/hupengcool/p/3934861.html
Copyright © 2011-2022 走看看