ホームページ >バックエンド開発 >PHPチュートリアル >nginx は私が返した 405 ステータス コードを自動的に 200 に変換しました
首先我用了symfonyhttp-foundation这个组件。
ajax请求端:
<code>$.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) {...} ...</code>
php响应端:
<code>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; }</code>
nginx配置:
<code>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; }</code>
这是返回
首先我用了symfonyhttp-foundation这个组件。
ajax请求端:
<code>$.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) {...} ...</code>
php响应端:
<code>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; }</code>
nginx配置:
<code>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; }</code>
这是返回
这个应该和nginx没关系吧