【openresty】獲取post請求數據FormInputNginxModule模塊


  關於openresty的一些介紹看這里

  首先,實驗背景為openresty作為后台來處理前台post傳遞的數據。

  在openresty內,有一個FormInputNginxModule模塊,作用是解析post請求中的參數。

  如果要使用該模塊,需要在編譯openresty源碼時,在"./configure"一步添加參數:

./configure --add-module=/somepath/form-input-nginx-module --add-module=/somepath/ngx_devel_kit

  在這里可以查看到FormInputNginxModule模塊的說明。


  我們需要獲取post請求中的數據,所以這里用到FormInputNginxModule模塊的下面這個命令:

set_form_input $variable argument;

  於是,我們有post請求:

 1 var json = {
 2     data: "Hello!"
 3 };
 4 $.post(
 5     'save', 
 6     json, 
 7     function(callback){
 8         alert(callback);
 9     }
10 );    

  其中function用以輸出后台返回的數據。

  接着,我們有nginx配置文件nginx.conf:

 1 user root;
 2 worker_processes  2;
 3 
 4 error_log  logs/error.log;
 5 pid        logs/nginx.pid;
 6 
 7 events {
 8     worker_connections  1024;
 9     # multi_accept on;
10 }
11 
12 http {
13     include       mime.types;
14 
15     access_log    logs/access.log;
16     
17     server {
18        listen 80;
19        server_name  localhost;
20        
21        location / {
22            root /var/www/aceEditor;
23            index index.htm index.html;
24        }
25            
26        location /save {
27            set_form_input $data data;
28           echo $data;
29        }
30     }
31 }

  這樣,當前台post數據時,就會觸發nginx的/save塊,於是通過FormInputNginxModule模塊的set_form_input指令將post的data數據set給了變量$data,然后我們就可以處理獲取的變量。在這個實驗中,使用echo向前台返回數據。

  於是,前台點擊post后,會彈出響應:

  

  到這里,一個完整的post過程就完成了。

  隨后,在post提交的json中傳遞的參數,都可以用FormInputNginxModule模塊的set_form_input指令來獲取,這樣,后台就取到了前天傳遞的數據,接着結合lua,繼續更多的操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM