zoukankan      html  css  js  c++  java
  • 【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,继续更多的操作。

  • 相关阅读:
    NPM采用Rust以消除性能瓶颈
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    【大数据分析】学习之路详解
    【大数据分析】学习之路详解
    Vue Router路由守卫妙用:异步获取数据成功后再进行路由跳转并传递数据,失败则不进行跳转
    RabbitMQ简述
    CAShapeLayer
    IOS杂记
    AfterEffects 关键帧辅助功能
  • 原文地址:https://www.cnblogs.com/linxiong945/p/4284434.html
Copyright © 2011-2022 走看看