区分 GCDWebServer 中的表单操作?
Differentiate form actions in GCDWebServer?
我在通过 GCDWebServer 托管的 HTML 页面上使用了两种表单。我有这样的第一个表单设置...
<form name=\"vendorInput\" method=\"post\" enctype=\"application/x-www-form-urlencoded\">
<input type=submit value='Add Vendor' action=\"/\">
第二个表单设置如下...
<form name=\"vendorInput\" method=\"post\" enctype=\"application/x-www-form-urlencoded\">
<input type=submit value='Add Item' action=\"/\">
我找不到任何对此提供支持的文档;我输入的除 /
以外的任何操作字符串都会导致 HTML 请求中断。 有没有办法解析 GCDWebServer 中表单提交按钮的不同操作?
您只需要让每个表单的动作成为不同的路径,然后为每个路径实现一个 GCDWebServer 处理程序:
[webServer addHandlerForMethod:@"POST"
path:@"/path1"
requestClass:[GCDWebServerURLEncodedFormRequest class]
processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {
// Do something with form data i.e. [[(GCDWebServerURLEncodedFormRequest*)request arguments]
return [GCDWebServerDataResponse responseWithHTML:@"<html><body>OK</body></html>"];
}];
[webServer addHandlerForMethod:@"POST"
path:@"/path2"
requestClass:[GCDWebServerURLEncodedFormRequest class]
processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {
// Do something with form data i.e. [[(GCDWebServerURLEncodedFormRequest*)request arguments]
return [GCDWebServerDataResponse responseWithHTML:@"<html><body>OK</body></html>"];
}];
有关示例,请参阅 https://github.com/swisspol/GCDWebServer#advanced-example-2-implementing-forms。
我在通过 GCDWebServer 托管的 HTML 页面上使用了两种表单。我有这样的第一个表单设置...
<form name=\"vendorInput\" method=\"post\" enctype=\"application/x-www-form-urlencoded\">
<input type=submit value='Add Vendor' action=\"/\">
第二个表单设置如下...
<form name=\"vendorInput\" method=\"post\" enctype=\"application/x-www-form-urlencoded\">
<input type=submit value='Add Item' action=\"/\">
我找不到任何对此提供支持的文档;我输入的除 /
以外的任何操作字符串都会导致 HTML 请求中断。 有没有办法解析 GCDWebServer 中表单提交按钮的不同操作?
您只需要让每个表单的动作成为不同的路径,然后为每个路径实现一个 GCDWebServer 处理程序:
[webServer addHandlerForMethod:@"POST"
path:@"/path1"
requestClass:[GCDWebServerURLEncodedFormRequest class]
processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {
// Do something with form data i.e. [[(GCDWebServerURLEncodedFormRequest*)request arguments]
return [GCDWebServerDataResponse responseWithHTML:@"<html><body>OK</body></html>"];
}];
[webServer addHandlerForMethod:@"POST"
path:@"/path2"
requestClass:[GCDWebServerURLEncodedFormRequest class]
processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {
// Do something with form data i.e. [[(GCDWebServerURLEncodedFormRequest*)request arguments]
return [GCDWebServerDataResponse responseWithHTML:@"<html><body>OK</body></html>"];
}];
有关示例,请参阅 https://github.com/swisspol/GCDWebServer#advanced-example-2-implementing-forms。