【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请求:
var json = {
data: "Hello!"
};
$.post(
'save',
json,
function(callback){
alert(callback);
}
);
其中function用以输出后台返回的数据。
接着,我们有nginx配置文件nginx.conf:
user root;
worker_processes ; error_log logs/error.log;
pid logs/nginx.pid; events {
worker_connections ;
# multi_accept on;
} http {
include mime.types; access_log logs/access.log; server {
listen ;
server_name localhost; location / {
root /var/www/aceEditor;
index index.htm index.html;
} location /save {
set_form_input $data data;
echo $data;
}
}
}
这样,当前台post数据时,就会触发nginx的/save块,于是通过FormInputNginxModule模块的set_form_input指令将post的data数据set给了变量$data,然后我们就可以处理获取的变量。在这个实验中,使用echo向前台返回数据。
于是,前台点击post后,会弹出响应:

到这里,一个完整的post过程就完成了。
随后,在post提交的json中传递的参数,都可以用FormInputNginxModule模块的set_form_input指令来获取,这样,后台就取到了前天传递的数据,接着结合lua,继续更多的操作。
【openresty】获取post请求数据FormInputNginxModule模块的更多相关文章
- 速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换
[源码下载] 速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换 作者:webabcd 介绍速战速决 之 PHP ...
- 测开之路一百二十六:flask之获取request请求数据
可以根据flask的request对象获取所有的请求信息 path = request.path # 获取请求地址method = request.method # 获取请求方法ip = reques ...
- 获取post请求数据工具类
package com.ccidit.features.otherFunctions.util; import java.io.BufferedReader; import java.io.IOExc ...
- WebAPI获取客户端请求数据
1.什么是WebAPI,详见:http://www.cxyclub.cn/n/25123/2.一般情况下我们不需要去关心客户端的请求数据,WebAPI会通过自己的方式去将客户端请求的数据转换为实体对象 ...
- Flask04 后台获取请求数据、视图函数返回类型、前台接受响应数据
1 后台获取请求数据 1.1 提出问题 前台发送请求的方式有哪些 后台如何获取这些请求的参数 1.2 前台发送请求的方式 GET.POST.AJAX 点睛:如果不指定请求方式,浏览器默认使用GET请求 ...
- yii学习笔记(4),获取请求数据的request组件
yii在控制器中获取请求数据需要通过request组件来完成 <?php namespace app\controllers; use yii; use yii\web\Controller; ...
- java getway springcloud 记录请求数据
java getway springcloud 记录请求数据,兼容post请求无参数和response返回无参数 方式1 import com.icar.web.icarutils.util.Clie ...
- C#爬虫之通过Selenium获取浏览器请求响应结果
前言 在进行某些爬虫任务的时候,我们经常会遇到仅用Http协议难以攻破的情况,比如协议中带有加密参数,破解需要花费大量时间,那这时候就会用Selenium去模拟浏览器进行页面上的元素抓取 大多数情况下 ...
- openresty 学习笔记二:获取请求数据
openresty 学习笔记二:获取请求数据 openresty 获取POST或者GET的请求参数.这个是要用openresty 做接口必须要做的事情.这里分几种类型:GET,POST(urlenco ...
随机推荐
- shallow copy 和 deep copy 的示例
本文属原创,转载请注明出处:http://www.cnblogs.com/robinjava77/p/5481874.html (Robin) Student package base; impo ...
- mouseover和mouseout、mouseenter和mouseleave
又一个傻傻分不清楚的东东~ 现实真是一个问题天天有的世界~本以为我对js中的事件还是比较了解的,对于早就接触的mouse事件,更是觉得得心应手了~但是现实却给了我一记重拳! 我自身工作中遇到的犯二的故 ...
- 2016-12-14:通过static关键字,使用类成员函数作为回调函数
#include <iostream> using namespace std; class Callee { public: void PrintInfo(int i) { cout & ...
- redis集群同步迁移方法(二):通过redis-migrate-tool实现
前篇介绍的redis replication方法,操作步骤多,而且容易出错.在git上看到一些开源工具也能实现同步迁移功能,而且步骤简单,比如redis-port,redis-migrate-tool ...
- 字符串怎么换行 || 字符串中使用单引号时应该怎么写 || 保留两位小数 || 数字0在if中的意思是false || 什么情况下会会报undefined || null和undefined的区别 ||
换行的字符串 "This string\nhas two lines" 字符串中使用单引号时应该怎么写 'You\'re right, it can\'t be a quote' ...
- javascript date picker
一个简洁的date picker <html><head><meta http-equiv="Content-Type" content=" ...
- Convert HTML to Text(转载)
原文地址:http://www.blackbeltcoder.com/Articles/strings/convert-html-to-text Download Source Code Intro ...
- 解除破解正版Kindle电子书籍的版权限制
解除破解正版Kindle电子书籍的版权限制(DRM). 方法并不复杂: 安装好Calibre电子书籍阅读管理软件: 在Calibre软件中安装好破解DRM插件:DRM: 把购买到的Kindle电子书籍 ...
- (转)关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍
AUTONOMOUS TRANSACTION(自治事务)的介绍 在基于低版本的ORACLE做一些项目的过程中,有时会遇到一些头疼的问题,比如想在执行当前一个由多个DML组成的transaction(事 ...
- [转载]卡尔曼滤波器及其基于opencv的实现
卡尔曼滤波器及其基于opencv的实现 源地址:http://hi.baidu.com/superkiki1989/item/029f65013a128cd91ff0461b 这个是维基百科中的链接, ...