如何从HTTP表头获取数据

时间:2017-07-03 18:10:07

标签: javascript http-headers form-data

我正在使用外部付款网站重定向到我自己的网站。我需要标题中的一些表单数据,我无法弄清楚如何获取数据。这是一个截图:

Headers

在标题标签中,我想从Form Data标签中获取信息。

以下代码是我能够找到的有关获取标头的代码,但问题是它只能抓取ResponseHeaders标签中的代码。并且req没有任何函数来获取表单数据。

var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();

我想知道是否有可以执行类似

的功能
var formData = req.getFormData().toLowerCase();

2 个答案:

答案 0 :(得分:2)

在浏览器端JavaScript中,无法获取有关从服务器获取当前页面的请求的信息。

如果要访问它,则需要使用服务器端代码动态生成页面并将其包含在DOM中(可能作为<script>元素中的JavaScript对象,或{{{ 1}}属性,或在data-*元素中),然后使用JS从DOM中提取它。

答案 1 :(得分:0)

mozilla网站提供了一个示例(https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getResponseHeader

var client = new XMLHttpRequest();
client.open("GET", "unicorns-are-teh-awesome.txt", true);
client.send();
client.onreadystatechange = function() {
  if(this.readyState == this.HEADERS_RECEIVED) {
    console.log(client.getResponseHeader("Content-Type"));
  }
}

但是获取更好(参见https://developer.mozilla.org/en-US/docs/Web/API/Response/headers):

fetch(myRequest).then(function(response) {
  console.log(response.headers); // returns a Headers{} object
  response.blob().then(function(myBlob) {
    var objectURL = URL.createObjectURL(myBlob);
    myImage.src = objectURL;
  });
});