headers哪个是响应时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了headers哪个是响应时间相关的知识,希望对你有一定的参考价值。

您好,HTTP响应头中的响应时间是指从服务器接收到客户端发出的请求到服务器完成处理并发回响应的时间。它可以帮助您了解服务器的响应速度,以及服务器的性能和可用性。响应时间是由服务器处理请求所需的时间,以及网络传输所需的时间组成的。它可以帮助您了解您的服务器是否可以满足客户端的需求,以及服务器是否可以提供更好的性能。 参考技术A 回答:HTTP请求和响应头之间都会包含一些结构化字段,其中“Date”字段就是响应时间,可以用来表明响应返回客户端的时间点。

预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Headers

【中文标题】预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Headers【英文标题】:Request header field Access-Control-Allow-Headers is not allowed by Access-Control-Allow-Headers in preflight response 【发布时间】:2016-05-15 21:37:51 【问题描述】:

我正在尝试从跨域创建登录页面但我无法解决问题,错误是:

XMLHttpRequest 无法加载 http://localhost/testing/resp.php。。

我的 Javascript 代码是:

$('#login').click(function()
		var username = $('#uname').val();
		var password = $('#pass').val();
		var result = $('.result');
		result.text('loading....');

		if (username != '' && password !='')
			var urltopass = 'action=login&username='+username+'&password='+password;
			$.ajax(
				type: 'POST',
				data: urltopass,
				headers: "Access-Control-Allow-Headers": "Content-Type",
				url: 'http://localhost/testing/resp.php',
				crossDomain: true,
				cache: false,
				success: function(responseText)
					console.log(responseText);
					if(responseText== "0")
						result.text('incorrect login information');
					 else if (responseText == "1")
						window.location="http://localhost/testing/home.php";
					 else
						alert('error in sql query \n' + responseText);
					
				
			);
		 else return false;
	);

http://localhost/testing/resp.php 的 PHP 代码:

<?php
	include "db.php"; //Connecting to database

	if (!isset($_SERVER['HTTP_ORIGIN'])) 
		echo "This is not cross-domain request";
    exit;

	header("Access-Control-Allow-Origin: *");
	header("Access-Control-Allow-Credentials: true");
	header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
	header("Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With");
	header('P3P: CP="CAO PSA OUR"'); // Makes IE to support cookies
	header("Content-Type: application/json; charset=utf-8");

	if (isset($_POST['action']) && $_POST['action'] == 'login')
		$uname = $_POST['username'];
		$pass = $_POST['password'];

		$sql = "SELECT * FROM loginajax WHERE username='$uname' AND password='$pass'";
	
		$rs=$conn->query($sql);

		if (mysqli_num_rows($rs) <= 0)
			echo "0";
		 else 
			echo "1";
		
		
	 else echo "this is not Login";

?>

【问题讨论】:

您可以使用浏览器开发工具找出实际返回的标头吗?笼统地说:允许从所有域登录不是一个好主意,这会使您容易受到 CSRF 之类的攻击(标准验证令牌防御要求浏览器不允许跨源请求)。 您的服务器提供预检请求。 PHP 由服务器渲染。您必须从服务器引擎本身返回标头。 【参考方案1】:

删除这个:

headers: "Access-Control-Allow-Headers": "Content-Type",

来自您的 jQuery.ajax 调用。

服务器以Access-Control-Allow-Headers 标头响应,客户端不会将其发送到服务器。

客户端发送Access-Control-Request-Headers 以请求允许某些标头,服务器以Access-Control-Allow-Headers 响应,其中列出了其将允许的实际标头。客户端不会要求允许哪些标头。

【讨论】:

请求头消失了,但我没有收到来自服务器的任何答复 @Anahoua16,将错误回调添加到您的 ajax 选项,即error:function() 并查看它是否被触发,如果是,则记录传递的状态/错误 状态:200 textStatus: parsererror errorThrown: SyntaxError: Unexpected token s 现在它正在工作,我正在输入 echo $_SERVER['REQUEST_METHOD'];调试,当我删除它时一切正常,谢谢

以上是关于headers哪个是响应时间的主要内容,如果未能解决你的问题,请参考以下文章

ajax响应时长怎样设置?

Apache 和 Headers 存在以响应 Ajax 请求

django-cors-headers 和 nginx 配置:预检响应缺少 CORS 标头

无法从响应 ReactJS 中获取 X-custom-header

即使使用 django-cors-headers 也得到 304 响应

PHP Header Location 响应为空