英语轻松读发新版了,欢迎下载、更新

Restful+跨域+ajax 究竟可行不可行

梦中醒不过来 发布于 2014年09月11日 | 更新于 2014年09月11日
无人欣赏。

上周被这个问题搞了好几天

首先,跨域+ajax是可以的,get和post请求在跨域的情况下改动服务端就可以顺利获取数据。

但加上Restful以后,put和delete就始终没能成功。

最初搭建架构打算提供统一的跨平台服务,Restful是最优的选择,但即使改动服务段的前提下,cordova下依然无法通过put和delete传递数据。估计用jsp或者php直接发httprequest是没问题的,但这种方案会增加开发工作量,不利于cordova跨app平台开发,与其这样不如取消Restful来的快。

在网上搜文章,都是Restful同域的情况,不清楚在跨域下究竟可行不可行。

下面贴一段服务端拦截的代码:

    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Access-Control-Allow-Headers", "Content-Type, X-Requested-With");
    response.setHeader("Access-Control-Allow-Methods", "GET,POST,DELETE,PUT,OPTIONS");
    response.setHeader("Allow", "GET,POST,DELETE,PUT,OPTIONS");
    response.setHeader("Content-Type", "application/json;charset=utf-8");  
    response.setHeader("Access-Control-Max-Age","60"); 

跨域时浏览器通常会得到如下的错误 已阻止交叉源请求:同源策略不允许读取 http://xxx 上的远程资源。可以将资源移动到相同的域名上或者启用 CORS 来解决这个问题。

暂无回复
登录 或者 注册