邮递员:使用application / x-www-form-urlencoded作为内容类型将XML作为正文发送

时间:2019-02-09 13:31:59

标签: javascript jquery ajax xml postman

好吧,第一件事:我对这段代码不负责。 我正在处理路由器。该路由器有一个Web界面,我要显示的代码在路由器的Web界面中。 我的工作是构建一个应用程序来配置此路由器。 我需要我的应用程序才能在路由器中执行登录操作。

问题是:为该路由器创建了Web界面的开发人员,使该路由器接受发布请求,该请求的主体为xml,内容类型为application/x-www-form-urlencoded! (waaaaaaat ???)

request being sent

生成此请求的源代码在页面中:

function PostXML_log(pUrl, value) {
    $.ajax({
        type: "POST",
        dataType: 'xml',
        url: pUrl,
        processData: false,
        data: value,
        async: true,
        beforeSend: function () { show_message("wait"); },
        success: function (data) {
            var code = $(data).find('CODE').text();
            if (code == "0" || code == "-1") {
                $.cookie.json = false;
                $.cookie("stork", $(data).find('MESSAGE').text(), { expires: 1 });
                if (code == "-1")
                    window.location = "mac_err.html";
                else
                    location.href = "../main_status.html";
            }
            else show_message("error", err_message)
        },
        error: function () { show_message("error", 'loading Error...'); },
        timeout: 20000
    });

}

function loginIn() {
    var username = 'admin';//$('#username').val();
    var password = ASCII2HEX($('#login_pwd').val());
    var xml = '<?xml version="1.0" encoding="utf-8"?><LOGIN><USER_NAME>' + username + '</USER_NAME><PASSWD>' + password + '</PASSWD></LOGIN>';
    PostXML_log("/cgi-bin/cgi.cgi?/app/route/login", xml);
};

问题是我找不到使用邮递员复制此行为的方法。我找不到发送正文并同时使用application/x-www-form-urlencoded作为内容类型的方法。

我尝试了4种不同的策略,但均未成功:

1-使用内容类型application / xml作为主体发送,导致没有收到响应(以纯文本或text / xml结果发送相同):

enter image description here

2-发送xml作为表单密钥,会导致错误

enter image description here

3-将xml作为表单值发送,导致错误

enter image description here

4-发送xml作为键和值,错误:(我尝试将xml的<xml>标记作为键,将<login>标记作为值,以及将整个xml用作键和值,没有运气)

enter image description here

0 个答案:

没有答案