当前位置: 首页 > 知识库问答 >
问题:

无法在javascript中读取http标头值

邹嘉荣
2023-03-14

在尝试HTTP头时,我在服务器上设置了无法访问java脚本。下面是我的代码。好心的一些帮助我解决这个问题。

@Path("/redirect")
public class RedirectDemo {

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response getRedirect(@Context ServletContext context,UserTO user) {
    UriBuilder builder = UriBuilder.fromPath(context.getContextPath());
    System.out.println("User name is:"+user.getUserName());
    System.out.println("Password is:"+user.getPassword());
    builder.path("/main.html");
    return Response
            .status(Response.Status.SEE_OTHER)
            .header(HttpHeaders.AUTHORIZATION,"Response authorize")
            .header("Access-Control-Allow-Origin", "*")
            .header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
            .header("Access-Control-Expose-Headers",HttpHeaders.AUTHORIZATION)
            .header(HttpHeaders.LOCATION, builder.build())
            .build();

    }
  }

Java脚本

        <body>
    <div class="container-test">
    <h3>
        <strong>iDNS</strong>
    </h3>
   </div>
    <div class="container">
    <form class="form-signin" id="loginForm" name="loginForm"
        action="/JerseyPageRedirection/redirect/redirect" method="post" id="login_form">
        <div class="errmsg text-center"></div>
        <label for="inputEmail">Email address</label> <input type="email"
            id="emailId" class="form-control" name="emailId"
            placeholder="Email address" required autofocus> <br> <label
            for="inputPassword">Password</label> <input type="password"
            id="password" class="form-control" name="password"
            placeholder="Password" required> <br>
        <!-- id="login-submit" -->
        <button type="button" class="btn btn-lg btn-primary btn-block"
            onclick="doLogin()">Sign in</button>
    </form>
</div>
<script>
    function doLogin() {
        var userName = window.btoa(document.getElementById('emailId').value);
        var password = window.btoa(document.getElementById('password').value);
        var formData = JSON.stringify({userName:userName,password:password});
        var xhr = new XMLHttpRequest();  
        xhr.open("POST", "/JerseyPageRedirection/redirect/redirect");  
        xhr.setRequestHeader("Content-type", "application/json");
        xhr.send(formData); 
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4)
                  if (xhr.status == 200)
                    var json_data = xhr.responseText;
                    window.location.href = xhr.responseURL;
        }
    }
        </script>
    </body>

谢谢,我需要在java脚本上读取头值。

共有1个答案

顾宸
2023-03-14

参见:在JavaScript中访问web页面的HTTP头

本文描述了获取所有标头的字符串表示形式以及命名标头的值的方法:https://developer.mozilla.org/en-美国/docs/web/api/xmlHttpRequest

DOMString getAllResponseHeaders();
DOMString? getResponseHeader(DOMString header);
 类似资料:
  • 我正在尝试生成一个带有授权标头的HTTP请求: 但此代码生成的请求不包含授权头: Cache-Control:无缓存 access-control-request-method: 来源:http://localhost:3021 接受语言:en-US,en;q=0.8,he;q=0.6 我做错了什么?

  • 本文向大家介绍如何使用JSP读取HTTP标头?,包括了如何使用JSP读取HTTP标头?的使用技巧和注意事项,需要的朋友参考一下 以下是使用HttpServletRequest的getHeaderNames()方法读取HTTP标头信息的示例。此方法返回一个Enumeration,其中包含与当前HTTP请求关联的标头信息。 一旦有了枚举,就可以以标准方式循环枚举。我们将使用hasMoreElement

  • 问题内容: 我是python的新手,使用Python Flask并生成REST API服务。 我想检查发送给客户端的授权标头。 但是我找不到在flask中获取HTTP标头的方法。 感谢获得HTTP标头授权的任何帮助。 问题答案: 行为就像字典一样,因此你也可以像使用任何字典一样获取标头:

  • 我正在尝试读取基于Spring的REST API中的HTTP头。我跟着这个。但我得到了这个错误: 未找到类java.lang.String, ContentType:Application/Octet-Stream的消息正文读取器 如何从HTTP头中获取值?

  • 我想使用React中的超文本传输协议put方法通过标头将值发送到Spring引导。 所以我使用axios制作了一个api调用代码。 但是spring boot无法读取头值并发送此错误 我不知道为什么我会收到此错误。我该如何解决这个问题? 下面我来展示一下我的春装开机代码。

  • 问题内容: 我正在使用api调用,它正在发送一些自定义标头,例如。但是我还不知道如何阅读它们。在函数内部,是一个应该给我所有标头的哈希值的函数,但仅显示标头。有没有办法获取响应头? 问题答案: 自定义标题将在同一域中可见。但是,对于跨域情况,服务器必须发送标头以使自定义标头可见。