为什么我的XML http请求返回HTML而不是JSON?

时间:2019-01-07 19:34:55

标签: json webdriver saucelabs

我需要从网页获取JSON响应文本才能进行解析。但是,当我创建XML HTTP请求时,返回的HTML甚至不在我请求的页面中。

我已经验证了内容类型已设置为application / json,必需的xmlhttprequest而不是xhr2(不起作用),将XMLHttpRequest.responseType设置为“ json”等。我尝试使用其他URL(https://jsonplaceholder.typicode.com/todos/1),并且可以获取JSON响应文本。但是,使用我的“秘密URL”(不幸的是无法提供),我得到了HTML响应。

我不确定从何处获取HTML,我查看了SauceLabs,但此刻它失败了。我也尝试过browser.getURL(),但得到了

function myXMLRequest() {

  var XMLHttpRequest = require('xhr2');
  XMLHttpRequest.responseType = "json";
  var xmlhttp = new XMLHttpRequest(); 
  // this URL works, but my secret URL does not
  var url = "https://jsonplaceholder.typicode.com/todos/1";

  xmlhttp.onreadystatechange = function() {
    console.log("this.readyState: " + this.readyState + " 
    this.status: " + this.status);
  if (this.readyState === 4 && this.status === 200) {
      console.log("this.responseText: " + this.responseText);
  } else {
      console.log("I was not ready");
  }
  };
      xmlhttp.open("GET", url, true);
      xmlhttp.send();
    }

在有效的URL中,我收到如下响应文本:

{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}

我希望我的秘密URL获得这样的响应。从我的图片可以看出,目前它会获得HTML响应。

HTML response

1 个答案:

答案 0 :(得分:0)

您的秘密URL仅定向到重定向页面。

在XML http请求中,您需要指定最终URL->可能是表单操作中的最终URL(在您的图像中)。