JavaScript跨域请求RESTful Web Servic

转载 2015年11月18日 18:00:01

当我们用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() {}

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

相关文章推荐

为RESTful API配置CORS-实现跨域请求

利用 Ruby on Rails 可以很方便地实现 RESTful API,但如果我们需要通过 AJAX 跨域调用的话,怎么办? 说到 AJAX 跨域,很多人最先想到的是 JSONP。的确,JS...

【JavaScript】跨源资源共享CORS和其他跨域技术(Comet、JSONP、SSE、Web Sockets)

通过XHR实现Ajax通信的一个主要限制,来源于跨域安全策略。默认情况下XHR对象只能访问与包含它的页面位于同一个域中的资源,这种安全策略可以预防某些恶意行为。但是,实现合理的跨域请求也是很重要的。一...

IOS 之 网络通信Web Servic

Web Service使用的是HTTP协议,并使用URI来定位资源.数据交换格式使用的是JSON和XML等,所支持的方法包括POST,GET,PUT,DELETE等.1

Yii2.0 探究五:基于Yii2.0框架的Restful Api的对接以及跨域解决

基于Yii2.0框架的Restful Api的对接以及跨域解决; 在yii2.0框架中集成了restful api的部分,封装在yii\rest下,我们要做的工作有: 1.apache或ngi...

UMeditor结合spring mvc restful解决图片上传跨域问题

UMeditor结合spring mvc restful解决图片上传跨域问题项目背景(任何不谈背景的解决方案都是耍流氓): 之前在很多地方看到了各种解决方法,然而有的是和我的情况不一致,有的是根本没...

【API设计风格—RESTful】:番外篇:跨域问题(四)

问题描述: Ionic serve 在浏览器中调试时IP是:http://localhost:8100 而我的本机的服务端的IP是:http://localhost:...

发布部署Web Servic

这几天做网站时,想实现一个功能:客户端的浏览器查询获取informix(IBM的商业数据库)里的数据。之前网站都是通过普通的架构实现的(2层架构?),简单的以为服务器和客户端间的交互只是DataTab...

Web前端面试指导(四十六):你了解跨域请求吗?

题目点评 主要考察对web安全是否有接触 ,关于安全方面的在面试时是经常被问到的。同一个意思可能问法也不同,比如说:“你对跨域了解吗?”“什么是跨域请求了?”其实都是同一个意思,回答思路可以先回答什...
  • lxcao
  • lxcao
  • 2016-10-27 17:05
  • 1615

python使用web.py开发httpserver,解决post请求跨域问题

使用web.py做http server开发时,遇到postman能够正常请求到数据,但是浏览器无法请求到数据,查原因之后发现是跨域请求的问题。 跨域请求,就是在浏览器窗口中,和某个服务端通过某个 ...

javascript 跨域请求

在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义。同 源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)