В сети есть объяснения что при запросе должны быть заголовки
Origin: http://yourdomain.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: X-Custom-Header
И при ответе должны быть заголовки
Access-Control-Allow-Origin: http://yourdomain.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: X-Custom-Header
А тело ответа должно быть пустым.
Но во первых Origin не возможно установить он и так будет установлен автоматически. А во вторых даже если так сделать то это будет обычный POST запрос а не Preflight запрос.
<script>
function fu(){
var invocation = new XMLHttpRequest();
var url = '/ajax_quest.php';
var body = '<\?xml version=\"1.0\"\?><person><name>Arun</name></person>';
if(invocation)
{
invocation.open('OPTIONS', url, true);
invocation.setRequestHeader('X-PINGOTHER', 'pingpong');
invocation.setRequestHeader('Content-Type', 'application/xml');
invocation.onreadystatechange = function(){
};
invocation.send(body);
}
}
</script>
<button onclick="fu()">Submit</button>
<?
header('Access-Control-Allow-Origin: https://test.logreel.xyz');
header('Access-Control-Allow-Methods: GET, POST');
header('Access-Control-Allow-Headers: X-Custom-Header');
?>