Apache Windows配置-----跨域设置-----HTTP响应头设置-------dplayer调用apache服务时的header filed range报错解决

7 篇文章 0 订阅
6 篇文章 0 订阅

一.Apache Windows配置

根据这位大佬的配置进行的博客地址

1.apache官网下载Apache HTTP Server服务器
①、打开apache官网http://httpd.apache.org/ (或百度"download apache")。
在这里插入图片描述
②、点击Download,出现以下界面 。
在这里插入图片描述
③、选择Windows版下载,点击链接。
在这里插入图片描述
④、在新的界面中,会发现VC9和VC11字样,通过阅读相关内容得知,VC9是指用VS2008编译的代码,而VC11是用VS2012编译的,而用VS2012编译的无法在Windows XP和Server 2003中使用。算是为了兼容性好点吧,本人选的用VC9编译Apache,选择下载至此,下载过程完成!

在这里插入图片描述
2.Apache服务器的安装
Apache服务器下载完成后,进行解压缩。

1.下载安装包
在这里插入图片描述
2.解压缩文件到你想放置的目录下,这里我本人选择放在D:\Apache-2.4.20目录下。
在这里插入图片描述
3.Apache服务器的配置
打开httpd.conf文件(比如在D:\Apache-2.4.20\Apache\conf下)
① 修改Apache实际绝对安装目录:最后结尾处不能带"/“或”",因为后面配置的目录开头已经带有"/“或”",如下图所示(其中“${SRVROOT}”指定义的SRVROOT路径变量):
在这里插入图片描述
若你的80端口被占用(可在cmd下用命令netstat -an -o | findstr 80),则将8081端口改为别的保存。
在这里插入图片描述
检查配置文件是否合法:
管理员权限打开cmd,并cd到apache/bin目录下
在这里插入图片描述
输入httpd -t检查配置文件是否正确
在这里插入图片描述
② 安装Apache的主服务:有了它,Apache才可启动。可以添加httpd.exe环境变量,然后打开cmd窗口,输入:

httpd -k install -n Apache

该命令的意思是,安装Windows可托管的Apache服务,其中"-n"后面参数是自定义Windows服务名称,之后可使用Windows管理服务的命令来管理apache服务,如"net start/stop apache"(启动/停止服务)。

服务安装完毕,完毕后,会自动测试,若有问题,窗口会提示错误,此时请根据错误自行排查。

正常安装完毕如下图所示:
在这里插入图片描述
其中,Errors reported here must be corrected before the service can be started.意思是“此处报告的错误必须在服务开始前进行纠正。”
4.Apache服务器的启动
配置好Apache服务器之后,我们便能启动服务器,Windows下Apache服务器的启动方式有三种。

1.apacheminitor打开apache服务

bin目录下双击该exe,打开:
在这里插入图片描述
在这里插入图片描述
点击左侧start,启动apache服务。

补充句,从该界面可看出,其可以手动控制服务的开启与关闭,为了节省资源,关闭Apache服务器的时候,请先点击“Stop”关闭apache服务。当然,该服务也可以windows系统服务中关闭(建议设置成手动)。

下图显示的是该服务成功显示的状态:
在这里插入图片描述
打开浏览器,输入访问http://localhost:8081,若出现如下图所示界面,则Apache服务器的基本配置完毕,此时apache服务器已经可以运行。
在这里插入图片描述
5.Apache服务的卸载
若Apache服务器软件不想用了,想要卸载,一定要先卸载apache服务,然后删除安装文件(切记,若直接删除安装路径的文件夹,会有残余文件在电脑,可能会造成不必要的麻烦),在cmd命令窗口,输入如下(建议先停止服务再删除):

httpd -k stop
httpd -k uninstall

在这里插入图片描述

二、Apache服务跨域及响应头设置

1.打开该文件httpd.conf
在这里插入图片描述
找到这行
#LoadModule headers_module modules/mod_headers.so
把#注释符去掉
LoadModule headers_module modules/mod_headers.so
目的是开启apache头信息自定义模块
在这里插入图片描述
在这里插入图片描述

<Directory />
    #AllowOverride none
    #Require all denied
	Options Indexes FollowSymLinks
	AllowOverride None
	Header set Access-Control-Allow-Origin *
	Header set Access-Control-Allow-Methods POST,GET,OPTIONS,DELETE,PUT
	Header set Access-Control-Max-Age 1000
	Header set Access-Control-Allow-Headers Origin,Accept,Range,Key,Content-Length,x-requested-with,Content-Type,authorization,client-security-token
</Directory>

到此,问题解决!!!感谢各位大佬文章的指导
请求标头字段范围不被Access-Control-Allow-Headers所允许(Request header field Range is not allowed by Access-Control-Allow-Headers):参考文章参考地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 跨域访问是指在浏览器中,通过JavaScript代码从一个域名的网页去请求另一个域名的资源,会被同源策略所限制而无法正常访问。为了解决这个问题,我们需要通过设置HTTP响应来允许跨域访问。 在HTTP响应中,我们可以设置一些特殊的标,如"Access-Control-Allow-Origin"、"Access-Control-Allow-Methods"、"Access-Control-Allow-Headers"等来控制在跨域请求的行为。 "Access-Control-Allow-Origin"标用于指定允许访问该资源的域,可以设置为具体的域名或通配符"*",表示允许任何域进行访问。 "Access-Control-Allow-Methods"标用于指定允许的请求方法,如GET、POST、PUT等。 "Access-Control-Allow-Headers"标用于指定允许的请求,如Content-Type、Authorization等。 除了以上标,还可以使用其他一些标来进一步控制跨域请求。此外,在前端代码中,还需要使用XMLHttpRequest对象或Fetch API发送请求设置"withCredentials"为true,并在后端服务器中作出相应的处理,允许发送带有身份凭证的跨域请求。 需要注意的是,在设置跨域访问的候,应该明确指定允许访问的域名,避免未经授权的域名访问可能引发的安全问题。 通过设置HTTP响应,我们可以解决跨域访问的问题,实现不同域名之间的数据交互与资源共享。 ### 回答2: 跨域访问是指在Web开发中,浏览器执行JavaScript代码请求不同源的资源,由于浏览器的同源策略限制,会导致请求失败。为了实现跨域访问,我们需要在服务器端设置HTTP响应。 常见的跨域访问解决方案是使用CORS(跨域资源共享)。在服务器端设置CORS标,允许特定的源发起跨域请求。通过设置中的"Access-Control-Allow-Origin"字段,可以指定允许请求的源。例如,设置为"*"表示允许任何源发起请求。 另一个常见的解决方案是使用JSONP(JSON with Padding)。JSONP利用了script标签不受同源策略限制的特性。通过在服务器端返回一个回调函数的调用,将数据作为参数传递给回调函数,实现跨域数据的获取。 除了CORS和JSONP,还可以使用代理服务器来解决跨域访问问题。在客户端发送请求,将请求发送至代理服务器,然后代理服务器再将请求转发至目标服务器,并将响应返回给客户端。这种方式绕过了浏览器的同源策略限制。 在设置HTTP响应候,需要注意安全性的考虑。过于宽松的设置可能导致跨域攻击。因此,我们应该根据需求明确允许的来源,并考虑设置其他相关的CORS标字段,比如"Access-Control-Allow-Methods"和"Access-Control-Allow-Headers"等。 总之,跨域访问需要通过在服务器端设置HTTP响应解决限制问题。CORS、JSONP和代理服务器是常见的实现跨域访问的解决方案。合理设置字段可以确保安全性和功能的平衡。 ### 回答3: 跨域访问是指在Web开发中,浏览器中运行的一个网页,向另一个域名下的资源发起请求,但是由于浏览器的同源策略限制,跨域请求是被禁止的。为了解决这个问题,需要在服务器的http响应中进行设置。 首先,服务器需要在响应设置Access-Control-Allow-Origin标,该标指定了被允许进行跨域访问的原始域名。可以设置为"*"表示允许来自所有域名的访问,也可以设定为特定的域名,例如"www.example.com"。 其次,服务器还可以设置其他的Access-Control-Allow-*标,来进一步控制跨域请求的细节。例如,Access-Control-Allow-Methods标可以指定允许的HTTP方法,Access-Control-Allow-Headers标可以指定允许的HTTP,Access-Control-Max-Age标可以设定预检请求的有效期等。 此外,如果在跨域请求中使用了携带身份凭证的cookie,还需要设置Access-Control-Allow-Credentials标为true,以允许携带凭证。 综上所述,跨域访问需要在服务器的http响应设置相关的Access-Control-*标,以允许来自其他域名的请求访问服务器的资源。通过设置合适的标,就可以在一定程度上解决跨域访问的限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ponGISer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值