`
onedear
  • 浏览: 69152 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

apache http server 解决跨域问题 与 修改响应内容

阅读更多

这篇文章转自自己的博客

 

通过服务器代理解决跨域问题是一种常见的解决js跨域的方法.
我这里以apache做例子,用apache http server(http://httpd.apache.org/docs/2.2/)当做代理服务器来实现跨域问题
相对于其他几种跨域方法的办法最大的好处是客户端代码不需要做大改动,甚至0改动,
其他大部分跨域解决方案cookie是无法带过去的,但通过这种方式可以做到cookie共享

例如我的网站http://onedear.cn,需要ajax访问http://www.163.com/getInfo这个接口
那只需要在apache的httpd.conf做如下url重写配置(相应的rewrite开关也要开)

 

RewriteEngine On
RewriteRule ^/163/(.*)    http://www.163.com/$1[P,L]
 

然后将请求地址从http://www.163.com/getInfo –> http://onedear.cn/163/getInfo
这样即可,cookie共享,跨域解决
同时apache支持的tps上万,一般情况下不会有相应的性能问题,放心使用

继续,apache的另一个利器–Filter
这个filter可以做到很多很多功能,修改请求内容,修改请求类型等,在这里写下他最好玩的一个功能,修改相应内容

例如,我的需求,要将返回的内容的onedear字符串改成od字符串
那只需要

<Location />
     AddOutputFilterByType SUBSTITUTE text/html
     Substitute "s|onedear|od|i"
</Location>

 

如果发现无法过滤,很可能相应网站做了gzip压缩,
启动
LoadModule deflate_module modules/mod_deflate.so
在filter增加INFLATE

AddOutputFilterByType SUBSTITUTE;INFLATE text/html
 

filter会自动对相应内容解压

有了这个功能就可以做很多其他事情了,例如可以做到在163.com网站引用自己的一个js并自动执行他,好玩吧.

另外提供一篇很好的关于js跨域总结的文章
http://ntesmailfetc.blog.163.com/blog/static/206287061201241011546581/

1
1
分享到:
评论
2 楼 cfan_haifeng 2012-06-05  
有备无患,记者了
1 楼 java_user 2012-06-05  
这个解决方法不错

相关推荐

    Ajax跨域问题及其解决方案.docx

    ### Ajax跨域问题及其解决方案 #### 一、Ajax跨域问题概述 在现代Web开发中,前后端分离架构越来越流行。这种模式下,前端页面与后端服务通常部署在不同的服务器上,甚至可能位于不同的域名下。当浏览器发起对不同...

    cesium跨域加载问题

    为了解决这个问题,服务端需要设置允许跨域的HTTP响应头,通常是`Access-Control-Allow-Origin`。这个头可以指定哪些源可以访问服务,或者设置为`*`表示任何源都可以访问。 在Tomcat服务器上配置跨域,我们可以通过...

    tomcat跨域访问问题

    当Tomcat服务器返回的响应头中包含`Access-Control-Allow-Origin`字段,且其值与请求的源匹配时,浏览器才会允许跨域访问。 解决Tomcat的跨域问题有几种方法: 1. **修改web.xml配置**:在Tomcat的每个Web应用的...

    解决nginx/apache静态资源跨域访问问题详解

    本篇文章将详细介绍如何在Nginx和Apache服务器上配置静态资源以解决跨域访问问题。 首先,我们来看Apache服务器的配置。Apache是流行的开源HTTP服务器,它允许通过修改配置文件来实现跨域设置。主要步骤如下: 1. ...

    Tomcat跨域请求资源解决方案.zip

    本资料包“Tomcat跨域请求资源解决方案.zip”显然是针对这个问题提供了一个具体的解决方案,主要聚焦于如何在Apache Tomcat服务器上配置以允许跨域请求。 Tomcat是Java Servlet容器,广泛用于部署Java Web应用程序...

    在各种服务器(nginx,apache,tomcat)上设置CORS跨域设置.zip

    CORS跨域设置主要涉及到修改服务器配置,添加适当的HTTP响应头部,如`Access-Control-Allow-Origin`、`Access-Control-Allow-Methods`和`Access-Control-Allow-Headers`。具体实现方法因服务器类型而异,但核心思想...

    web跨域完美解决方式

    在Web开发中,"跨域"(Cross Domain)是一个常见的问题,它涉及到浏览器的同源策略,这是一种安全机制,限制了网页只能与同一协议、同一域名、同一端口的资源进行交互。当一个请求试图从一个域访问另一个域的资源时...

    详解vue或uni-app的跨域问题解决方案

    6. 实际开发中,跨域问题的解决方案还涉及到前端代码的改动,例如在Vue项目中,需要确保使用了正确的代理配置或通过配置webpack的devServer选项来处理跨域请求。 了解和掌握这些知识点,对于前端开发者来说非常重要...

    java跨域单点登录实现

    本项目代码着重展示了如何在Java环境中解决跨域问题并实现SSO功能。 SSO的核心原理是通过共享一个中央认证服务(Central Authentication Service, CAS)来处理用户的登录状态,当用户在任一系统中登录后,其身份...

    js+jsp+json+tomcat跨域访问

    在IT行业中,跨域访问是Web开发中一个重要的概念,特别是在使用JavaScript、JSP、JSON以及前端库如jQuery时。本教程将详细讲解如何利用这些技术实现跨域数据交互。 首先,我们需要理解“跨域”这个术语。在浏览器的...

    tomcat跨域jar包

    因此,“tomcat跨域jar包”通常是指用于解决Tomcat服务器上应用的跨域问题的特定解决方案或库。 在Tomcat中,处理跨域请求通常有两种方式: 1. **CORS(Cross-Origin Resource Sharing)配置**:CORS是一种现代...

    JAVA调用外接设备(制卡机)---JQuery跨域

    本主题聚焦于如何在JAVA环境下通过JQuery处理跨域问题来调用这些外接设备,尤其是解决AJAX跨域问题。以下是相关知识点的详细说明: 1. **JAVA调用外接设备**: - JAVA作为后端编程语言,可以通过JNI(Java Native ...

    跨域访问禁止以及使用JSONP实现跨域的示例

    在Web开发中,跨域访问是一个常见的问题,它源于浏览器的同源策略(Same-Origin Policy)。同源策略是为了保障安全,防止恶意网站通过脚本访问并操控其他网站的数据。但这种策略也限制了Web应用程序获取不同源的数据...

    tomca设置跨域.rar

    在现代Web开发中,跨域资源共享(CORS)是一个常见的需求,特别是在前后端分离的架构中。本资源“tomca设置跨域.rar”提供了一种使用Tomcat服务器配置跨域...如果你在实际操作中遇到问题,可以参考这些材料来解决问题。

    ngnix 漏洞修复文档

    修改 404 页面及 500 页面,不要出现 apache、nginx 等字样,可以解决这个问题。 3. Referrer-Policy 响应头缺失 Referrer-Policy 是一种 HTTP 响应头,用于指定 referer 策略。通过添加 add_header 'Referrer-...

    Apache2.0中文手册(chm格式)

    Apache HTTP Server 2.0(通常简称为Apache2.0)是世界上最流行的Web服务器软件之一,它免费且开源,提供高效、稳定、可扩展的Web服务。这份Apache2.0中文手册是为帮助用户理解并配置Apache服务器而编写的,包含了...

    PHP防止跨域提交表单

    对于使用Apache作为Web服务器的项目来说,还可以通过修改服务器配置文件来增强防护能力。具体而言,可以通过设置`HostLookups`参数来启用DNS查询,以便更精确地判断请求的来源。不过需要注意的是,这种方法会带来...

    已解决:No &#39;Access-Control-Allow-Origin&#39;跨域问题

    跨域问题在Web开发中是一个常见的挑战,尤其是在前后端分离的项目中。"No 'Access-Control-Allow-Origin'"错误是由于浏览器的同源策略(Same-origin Policy)限制所致,该策略规定,JavaScript发起的Ajax请求只能...

Global site tag (gtag.js) - Google Analytics