好吧,第一件事:我对这段代码不负责。 我正在处理路由器。该路由器有一个Web界面,我要显示的代码在路由器的Web界面中。 我的工作是构建一个应用程序来配置此路由器。 我需要我的应用程序才能在路由器中执行登录操作。
问题是:为该路由器创建了Web界面的开发人员,使该路由器接受发布请求,该请求的主体为xml,内容类型为application/x-www-form-urlencoded
! (waaaaaaat ???)
生成此请求的源代码在页面中:
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结果发送相同):
2-发送xml作为表单密钥,会导致错误
3-将xml作为表单值发送,导致错误
4-发送xml作为键和值,错误:(我尝试将xml的<xml>
标记作为键,将<login>
标记作为值,以及将整个xml用作键和值,没有运气)