Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。
例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页
[root@new-host ~]# curl -d 1=1 http://www.sohu.com/index.html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>405 Method Not Allowed</TITLE>
</HEAD><BODY>
<H1>Method Not Allowed</H1>
The requested method POST is not allowed for the URL /index.html.<P>
<HR>
<ADDRESS>Apache/1.3.37 Server at www.sohu.com Port 80</ADDRESS>
</BODY></HTML>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>405 Method Not Allowed</TITLE>
</HEAD><BODY>
<H1>Method Not Allowed</H1>
The requested method POST is not allowed for the URL /index.html.<P>
<HR>
<ADDRESS>Apache/1.3.37 Server at www.sohu.com Port 80</ADDRESS>
</BODY></HTML>
例2:用Linux下的curl命令发送POST请求给Nginx服务器上的HTML静态页
[root@new-host ~]# curl -d 1=1 http://blog.s135.com/tech/index.htm
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/0.5.35</center>
</body>
</html>
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/0.5.35</center>
</body>
</html>
但在有些应用中,需要使静态文件能够响应POST请求。
对于Nginx,可以修改nginc.conf配置文件,改变“405错误”为“200 ok”,并配置location来解决,方法如下:
server
{
listen 80;
server_name domain.s135.com;
index index.html index.htm index.php;
root /opt/htdocs;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
error_page 405 =200 @405;
location @405
{
root /opt/htdocs;
}
location ~ .*.php?$
{
include conf/fcgi.conf;
fastcgi_pass 127.0.0.1:10080;
fastcgi_index index.php;
}
}
{
listen 80;
server_name domain.s135.com;
index index.html index.htm index.php;
root /opt/htdocs;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
error_page 405 =200 @405;
location @405
{
root /opt/htdocs;
}
location ~ .*.php?$
{
include conf/fcgi.conf;
fastcgi_pass 127.0.0.1:10080;
fastcgi_index index.php;
}
}
相关推荐
Apache、IIS、nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误
主要介绍了http请求405错误方法不被允许的解决 (Method not allowed),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了php采用curl访问域名返回405 method not allowed提示的解决方法,需要的朋友可以参考下
Android WebView 报 Not allowed to load local resource错误的解决办法 博客地址:http://blog.csdn.net/yuzhiqiang_1993/article/details/76228541
全部接口报405 NOT Allowed 错误,如下图所示: 解决问题过程 在网上查了很多,试了几种方案 (1)前端将POST请求更改为GET请求; (2)nginx配置加上如下代码 : location / { error_page 405 =200 /...
在一个服务器A里放置了json文件,另一个服务器B想向A发送ajax请求,获取此文件,会发生错误。 Chrome提示: XMLHttpRequest cannot load ******. No 'Access-Control-Allow-Origin' header is present on the ...
10.4.6 405 不被允许的方法(Method Not Allowed) 65 10.4.7 406 不接受的 (Not Acceptable) 65 10.4.8 407 代理服务器授权所需(Proxy Authentication Required) 65 10.4.9 408 请求超时(Request Timeout) 65...
设置隐试打开PPT报错 Hiding the application window is not allowed
405 Method Not Allowed 请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用。(HTTP 1.1新) 406 Not Acceptable 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容(HTTP ...
NULL 博文链接:https://yizhilong28.iteye.com/blog/1137285
NR5G网络拒绝码-5gmm_cause = 7 (0x7) (5GS Service not allowed)
https://golang.org/x/下的相关的包国内无法下载,这个可以直接将解压后的golang.org-master/x目录下到包放到GOPATH目录下的golang.org/x路径下面,执行go install 包名称就行了
EFQRCode 是一个用 Swift 编写的用来生成和识别二维码的库,它基于系统二维码生成与识别进行开发。 - 生成:利用输入的水印图/图标等资源生成各种艺术二维码; - 识别:识别率比 iOS 原生二维码识别率更高。
如果程序返回 SIP-C/2.0 405 Method Not Allowed 通常是对方设置拒绝短信通知。所以发送失败 我在PC客户端上的设置都没问题,但是依旧不能解决这个事情。 后来偶然中发现飞信的手机客户端的设置中有这么一项:接收...
Host 主机名 is not allowed to connect the mysql server 原因:没有授权远程访问mysql 解决方法: cmd 中运行mysql -u root -p(如果报mysql 不是内部或外部命令,找到安装mysql对应的bin文件夹运行mysql.exe,...
nginx: [emerg] “proxy_cache_path” directive is not allowed here in /etc/nginx/conf.d/default.conf:29 提示意思“proxy_cache_path指令不被允许”,在官网上查找了相关说明,也没有发现问题,最后看应用范围...
无法在浏览器中显示file://uri 。 异常Not allowed to load local resource: file:///storage/emulated/0/Android/data/com.id19jnxj7x01rqq1f7obp4/cache/1419631726054.jpg
"Host 'localhost' is not allowed to connect to this MySQL server" 的原因及解决办法