Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
7
rated 0 times [  9] [ 2]  / answers: 1 / hits: 43336  / 8 Years ago, fri, february 5, 2016, 12:00:00

I am trying to make a login page from cross domain but I couldn't solve the problem, the error is:




XMLHttpRequest cannot load http://localhost/testing/resp.php. Request header field Access-Control-Allow-Headers is not allowed by Access-Control-Allow-Headers in preflight response.




My Javascript code is:





$('#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;
});





The PHP code for http://localhost/testing/resp.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;

?>




More From » php

 Answers
13

remove this:



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


from your jQuery.ajax call.



The server responds with a Access-Control-Allow-Headers header, the client doesn't send it to the server.



The client sends a Access-Control-Request-Headers to request allowing certain headers, the server responds back with with a Access-Control-Allow-Headers that lists the actual headers its going to allow. The client does not get to demand what headers are allowed.


[#63426] Wednesday, February 3, 2016, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
eanskylerg

Total Points: 524
Total Questions: 107
Total Answers: 100

Location: Colombia
Member since Mon, May 2, 2022
2 Years ago
;