gpt4 book ai didi

javascript - jQuery $.ajax() 请求返回空数据

转载 作者:行者123 更新时间:2023-11-28 20:07:31 25 4
gpt4 key购买 nike

我有一个简单的登录页面,它将登录信息发送到 servlet,并作为响应接收一个用 jQuery 解释的参数。

数据发送正确,进入 servlet,该 servlet 也正确设置参数(我可以在响应 header 的 Firebug 中看到这一点)。

问题是当我想从返回的响应中检索数据并将其分配给 JavaScript 变量时。请求对象为空,而在 Chrome 检查中我看到一条警报:

Uncaught TypeError: Object has no method 'getResponseHeader'.

当我使用 console.log () 显示它时,不会向我返回任何内容,没有任何值。

<!DOCTYPE html>
<html lang="en">
<head>
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="../../assets/ico/favicon.png">
<link
href="http://minikomi.github.io/Bootstrap-Form-Builder/assets/css/lib/bootstrap.min.css"
rel="stylesheet">
<link
href="http://minikomi.github.io/Bootstrap-Form-Builder/assets/css/lib/bootstrap-responsive.min.css"
rel="stylesheet">
<link
href="http://minikomi.github.io/Bootstrap-Form-Builder/assets/css/custom.css"
rel="stylesheet">
<script src="http://code.jquery.com/jquery-2.0.3.js"></script>
<script src="../js/jquery.validate.js"></script>


<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Logowanie</title>

<!-- Bootstrap core CSS -->
<link href="../css/bootstrap.min.css" rel="stylesheet">

<!-- Custom styles for this template -->
<link href="../css/signin.css" rel="stylesheet">

<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="../../assets/js/html5shiv.js"></script>
<script src="../../assets/js/respond.min.js"></script>
<![endif]-->
</head>

<body>

<div class="container">

<form class="form-signin" action="Login" method="post">
<h2 class="form-signin-heading">Logowanie</h2>

<input type="email" name="email" class="form-control" id="email"
placeholder="Adres email" autofocus>


<input type="password" id="password"
name="password" class="form-control" placeholder="Haslo">


</form>
<button id="zaloguj" value="zaloguj" class="btn btn-success btn-large">
<i class="icon-white icon-th-list"></i>Zaloguj
</button>

</div>
<!-- /container -->


<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

<script type="text/javascript">

$('#zaloguj').click(function() {
var email = $("#email").val();
var password = $("#password").val();

console.log(email+password);
var data = "email=" + email + "&password=" + password;
$.ajax({
url : "Login",
type : "POST",
data : data,

success : function(request) {
console.log(request);
var log = request.getResponseHeader("log");
console.log(log);

if (log == 1) {

$( ":header" ).after("Poprawne logowanie").css({ background: "#ccc", color: "green" });
document.location.href = '/landing.html';
} else {
$( ":header" ).after("Błędne logowanie").css({ background: "#ccc", color: "red" });
}
},

});

});
</script>
</body>
</html>

最佳答案

看来您使用了错误的重载来获得成功。

success : function(request) {
console.log(request);
var log = request.getResponseHeader("log");

应该是:

success : function(data, status, xhr) {
console.log(data);
var log = xhr.getResponseHeader("log");
<小时/>

请参阅docs

success Type: Function( PlainObject data, String textStatus, jqXHR jqXHR )

然后

The jqXHR Object

The jQuery XMLHttpRequest (jqXHR) object returned by $.ajax() as of jQuery 1.5 is a superset of the browser's native XMLHttpRequest object. For example, it contains responseText and responseXML properties, as well as a getResponseHeader() method.

关于javascript - jQuery $.ajax() 请求返回空数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20549971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com