Тема: крос-доменні запити ajax (вирішено)
Привіт. На моєму сайті є форма яку юзер заповняє і відправляє ajax-ом на інший сервер, і там дані повинні записатися в базу. Спочатку дані які юзер відправляв блокувалися:
XMLHttpRequest cannot load https://***/**/**.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://house-build.org' is therefore not allowed access.
добавив в php файл:
header('content-type: application/json; charset=utf-8');
header("access-control-allow-origin: *");
помилка з консолі зникла. Зараз не можу вивести дані з бази, при тому що до бази підключається (виводиться при успішному підключенні "ок"), і сам sql запит робочий тому що був скопіпащений з іншої моєї сторінки де все працює.
$.ajax({
type: "POST",
url: "https://site/formSend/sendData.php",
dataType: 'text',
//crossDomain: true,
data: "quest_email="+$('[name="quest_email"]').val()+"&brand="+$('#select2-chosen-1').html()+"&partNumber="+
$('[name="partNumber"]').val()+"&quantity="+$('[name="quantity"]').val()+"¬e="+$('[name="note"]').val()+"&identification="+$('[name="identification"]').val(),
success: function(data){
document.write(data);
$('#formSendRequest').html("<div style='width: 100%; padding: 50px; margin: 10px 0px; color: #156902; border: border: 2px dotted black;'>Ваше сообщение было успешно отправлено.</>");
//$("#send_button").removeAttr('disabled');//повертаємо стан кнопки в активний
},
error: function(response) {
console.log(JSON.stringify(response));
}
});
файл.PHP
<?php
header('content-type: application/json; charset=utf-8');
header("access-control-allow-origin: *");
$host = "..";
$loginBd = "..";
$passwordBd = "....";
$nameBd = "..";
$link = mysqli_connect("$host", "$loginBd", "$passwordBd", "$nameBd");
mysqli_set_charset($link, "utf8");
/* проверяем соединение */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}else{
//echo "ok";
}
if(isset($_POST['brand']) )//&& $_SERVER['HTTP_HOST'] == "$host"
{
$result = mysqli_query($link, "SELECT * FROM mf_manufacturer");
while( $row = mysqli_fetch_assoc($result) ){
echo "<option value='".$row['name']."' onclick='chekedBrand(`".$row['name']."`)' id='option'>".$row['name']."</option>";
}
}
?>
в консолі вибиває:
{"readyState":0,"responseText":"","status":0,"statusText":"error"}