微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过发布 XML 数据打开新标签页或同一页面重定向

如何解决通过发布 XML 数据打开新标签页或同一页面重定向

我有一个端点,为了访问应用程序,我需要发送一个带有 XML 有效负载的 POST 请求。注意事项 - 我目前无权访问此端点以进行任何更改。

我目前所做的是在浏览器中访问端点的基本 URL,打开 firefox 开发工具来编辑请求(将 GET 更改为 POST,添加一些标题添加 XML 正文),然后选择“在新选项卡中重新发送请求”选项,firefox 开发工具为您提供了选项。端点然后看到它被发布到,并进行重定向,我可以毫无问题地访问应用程序。

我不想通过 firefox 开发工具来做这件事,而是想构建一个可以模拟这一点的快速本地应用程序(基本上只是一个带有脚本的 HTML 页面)。

到目前为止,我已经能够使用 XMLHTTPRequest() 发出 POST 请求并接收有效响应,但正如预期的那样,它只是 HTML 响应,并且没有呈现到浏览器中,只是在我的回调中返回的数据。然后我尝试将窗口重定向到在发布请求完成后从我的端点解析的 URL,但这显示端点应用程序带有“会话已过期”通知,这也是有道理的,因为浏览器打开的初始会话不是,但通过 XHR 调用

var xhr = new XMLHttpRequest();
xhr.open("POST",'END_POINT',true);

//Send the proper header information along with the request
xhr.setRequestHeader("Content-Type","text/xml");

xhr.onreadystatechange = function(data) { // Call a function when the state changes.
    if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
        //window.location.href=data.srcElement.responseURL; <---will end up in session expired
        console.log(data);
    }
xhr.send(XML-POSTED-DATA);

我尝试过使用表单进行调查,因为内置表单具有将表单参数发送到新选项卡的功能,但我没有看到任何实际发送 XML 数据的可能性(内容类型:文本/xml ) 通过端点应用程序期望的形式。

最后,我尝试替换当前页面/Iframe 的innerHTML,但那只会呈现一页,我需要继续处理实际端点应用程序中的流程。

似乎应该有一种方法基本上只是将 POST 请求发送到新选项卡(或同一窗口)中的端点,就像表单所做的一样,但也发送 XML 数据,但我还没有找到了任何方法来做到这一点。有没有人有任何想法/技巧/提示来做到这一点? hacky 解决方案对我来说很好,因为我真的将是唯一的用户

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。