nginx自动把我返回的405状态码转化成200了
程序员文章站
2022-04-11 12:48:18
...
首先我用了symfonyhttp-foundation这个组件。
ajax请求端:
$.ajax({
url: jsui.www + 'comment/add',
data: $(this).serialize(),
type: $(this).attr('method'),
error: function(request) {
$('.comt-loading').slideUp(300);
$('.comt-error').slideDown(300).html(request.responseText);
},
success: function(data) {...}
...
php响应端:
public function add()
{
//header('HTTP/1.1 405 Method Not Allowed');
//echo 'Content';
//exit; //这样写也返回200
$response = new Response(
'Content405!',
Response::HTTP_METHOD_NOT_ALLOWED,
array('content-type' => 'text/html')
);
//var_dump($response);die();
return $response;
}
nginx配置:
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root E:\Nginx\www;
index index.html index.htm index.php;
if (!-e $request_filename) {
#一级目录下
#rewrite ^/(.*)$ /index.php/$1 last;
#域名下的二级目录
rewrite ^/newblog/web/(.*)$ /newblog/web/index.php/$1 last;
}
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php {
root E:\Nginx\www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$; #增加这一句
fastcgi_param PATH_INFO $fastcgi_path_info; #增加这一句
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
这是返回
回复内容:
首先我用了symfonyhttp-foundation这个组件。
ajax请求端:
$.ajax({
url: jsui.www + 'comment/add',
data: $(this).serialize(),
type: $(this).attr('method'),
error: function(request) {
$('.comt-loading').slideUp(300);
$('.comt-error').slideDown(300).html(request.responseText);
},
success: function(data) {...}
...
php响应端:
public function add()
{
//header('HTTP/1.1 405 Method Not Allowed');
//echo 'Content';
//exit; //这样写也返回200
$response = new Response(
'Content405!',
Response::HTTP_METHOD_NOT_ALLOWED,
array('content-type' => 'text/html')
);
//var_dump($response);die();
return $response;
}
nginx配置:
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root E:\Nginx\www;
index index.html index.htm index.php;
if (!-e $request_filename) {
#一级目录下
#rewrite ^/(.*)$ /index.php/$1 last;
#域名下的二级目录
rewrite ^/newblog/web/(.*)$ /newblog/web/index.php/$1 last;
}
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php {
root E:\Nginx\www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$; #增加这一句
fastcgi_param PATH_INFO $fastcgi_path_info; #增加这一句
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
这是返回
这个应该和nginx没关系吧