【问题标题】:Node.js: Remotely Submitting FormsNode.js:远程提交表单
【发布时间】:2011-12-12 08:46:14
【问题描述】:

我目前正在为 Node.js 开发一种 Web 代理,但我在提交表单时遇到了问题,在大多数网站上我都能成功提交表单,但在其他一些网站上我就没有那么幸运了。我无法确定我是否做错了什么。

有没有更好的方法来做到这一点?

另外,我如何使用 Express.js bodyparser 处理多部分表单?

目前我的表单处理方式是这样的:

function proxy(req, res,request)
{ 

var sess = req.session;

var onUrl_Parse = function(url){
        var  Uri= new URI.URI(url);//Parses incoming url
            var options = {
                uri: url,
                method: req.method
            }

                options.headers={"User-Agent": "Mozilla/5.0 (Windows  NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0", "Cookie":req.session.cook};



        if(req.body) //If x-www-form-urlencoded is posted.
        {
            var options = {
                uri: url,
                method: req.method,
                body: req.rawBody
            }
                options.headers={"User-Agent": "Mozilla/5.0 (Windows  NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0", "Cookie":req.session.cook, "Content-Type":"application/x-www-form-urlencoded"};
        }


    onRequestOptions(options, url);
}

,onRequestOptions = function(options, url)
{       
    request(options, function(error, response, body)
    {       
            if(!error){
                    if(response.headers['set-cookie'])
                        req.session.cook=response.headers['set-cookie'];
                Proxy_Parser.Parser(body, url, async, onParse);// Parses returned html return displayable content
            }

    });
}

,onParse = function(HTML_BODY)
    {
        if(HTML_BODY=="")
            res.end();
        res.write(HTML_BODY);
        res.end();
        console.log("DONEEEEE");
    }   



Url_Parser.Url(req, URI, onUrl_Parse);

}

【问题讨论】:

    标签: javascript forms node.js express


    【解决方案1】:

    我不确定您到底想要完成什么,但无论如何推荐https://github.com/felixge/node-formidable !!

    【讨论】:

    • 我不知道为什么我的答案被否决了。最好能说明原因,以免我重蹈覆辙。
    【解决方案2】:

    我会从node-http-proxy 之类的东西开始。所有繁重的工作都已为您完成,您只需定义要代理的路由并为自定义响应信息放入一些处理程序。

    【讨论】:

    • 这可以处理对外部网站的请求吗?如果有,有什么例子吗?
    • 是的,第二个示例使用自定义服务器逻辑设置独立代理服务器。只需更改您所指向的端口和 URL。
    猜你喜欢
    • 2012-01-27
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 2014-04-12
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多