是否有可能以编程方式获取hs导入的响应代码?

时间:2015-04-15 06:53:20

标签: javascript

在HTML中,是否可以查看导入脚本的响应代码?

我特别需要获取每个脚本导入的响应代码。这与我在post处理的问题有关。

我想知道我是否无法使用angularjs进行拦截,也许我可以通过使用纯JavaScript进行拦截。

2 个答案:

答案 0 :(得分:1)

Ajax将是最佳选择。要用JS中的手动文件干净地替换浏览器对脚本文件的请求,您需要执行以下操作。

var xhr = new XMLHttpRequest();
xhr.onload = function(event) {

  // Check the http status code and inject script on page if 200

  if (event.target.status === 200) {
    var script = document.createElement('script');
    script.innerText = event.target.response;
    document.body.appendChild(script);
  }
  else {

   // Handle other status codes..

  }
};
xhr.open('get', 'script.js', true);
xhr.send();

答案 1 :(得分:0)

您无法拦截浏览器发出的资源请求的响应。解决方法是通过ajax动态加载js文件并检查那里的结果代码。例如。 (我使用jquery语法更容易编写):

$.ajax({
    url: "/js/my_js_file.js",
    type: "GET",
    success: function(data) {            
        eval(data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
       // handle the response code
    }
});

如果您的网页上有可能的js文件,那将会很麻烦。

如果您的挑战是检测用户何时进行身份验证,解决方案可以更简单:您可以在页面开头对/ check_auth端点进行ajax调用,如果端点返回401,则重定向用户到登录页面。