在预检响应中,Access-Control-Allow-Headers不允许使用请求标题字段Access-Control-Allow-Headers

我试图从跨域创建一个登录页面,但我无法解决问题,错误是:

XMLHttpRequest无法加载http://localhost/testing/resp.php 。 在预检响应中,Access-Control-Allow-Headers不允许使用请求标题字段Access-Control-Allow-Headers。

我的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代码:

 query($sql); if (mysqli_num_rows($rs)  

删除这个:

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

来自你的jQuery.ajax调用。

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

客户端发送一个Access-Control-Request-Headers来请求允许某些标头,服务器用一个Access-Control-Allow-Headers响应,它列出了它允许的实际标头。 客户端无法要求允许哪些标头。