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

JavaScript跨域调用基于JSON的RESTful API

《JavaScript跨域调用基于JSON的RESTful API》 1. 基本术语 AJAX(Asynchronous JavaScript And XML,异步JavaScript和XML):...
  • i_chips
  • i_chips
  • 2016年07月05日 10:00
  • 4228

WCF Restful调用跨域解决方案

目前很多项目中CRM更多扮演一个纯后台管理系统,用户更多的操作是在移动端执行,不管是安卓还是IOS甚至是H5。这里以H5为例,CRM提供数据接口,移动web端来调用接口进行数据处理,这里就会涉及到一个...
  • woniu1104913
  • woniu1104913
  • 2016年09月19日 11:39
  • 2529

JavaScript端构建RESTFul Client的简单例子

本文由Markdown语法编辑器编辑完成。1. REST服务:2. REST客户端:testRestfulClient.html文件内容为: RESTFul Client test pag...
  • inter_peng
  • inter_peng
  • 2017年08月26日 18:13
  • 942

Ajax异步请求RESTFUL API之跨域问题解决方案

Ajax之异步请求 Access control allow origin 同源策略 CORS(Cross-Origin Resource Sharing) *HTTP之简单请求和复杂请求...
  • yubin1991
  • yubin1991
  • 2016年08月10日 21:39
  • 4408

RESTful Web Service 架构剖析

如今微服务和分布式架构变的越来越流行,而简单,可靠,高效,跨平台和跨语言的 Web Service 则是这类系统架构的基石。 RESTful Web Service 恰好满足这些特点,被越来越多的系...
  • liuwenbiao1203
  • liuwenbiao1203
  • 2016年08月29日 10:06
  • 944

发布部署Web Servic

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

Web Service 与 RESTful Web Service比较

REST ful Web Service是什么?         REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性。REST提...
  • lilongsheng1125
  • lilongsheng1125
  • 2014年12月01日 10:21
  • 15817

《RESTful Web APIs》读后感

《RESTful Web APIs》读后感 由于想理清楚REST术语的确切含义,以及大多数场景下REST代指了什么,是否有人滥用的情况,我找了一些专门讲REST的书来学习。下面是我对REST...
  • JFlyer
  • JFlyer
  • 2016年02月02日 15:15
  • 1132

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

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

python cherrypy RESTful API,cherrypy支持跨域ajax访问,CROS,crossdomain ajax

cherrypy的文档说明比较少,看官网的例子,在python2.6中不能直接运行,需要修改如下: #!/usr/bin/python2.6 ''' see also: http://www....
  • winlinvip
  • winlinvip
  • 2013年06月09日 11:52
  • 2596
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript跨域请求RESTful Web Servic
举报原因:
原因补充:

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