CORS not working php CORS not working php php php

CORS not working php


Finally, I myself have solved the problem explained in the question. The code that I have implemented for accessing header is incorrect.

The below mentioned two line code, when given, didn't work:

<?phpheader('Access-Control-Allow-Origin: *');header('Access-Control-Allow-Methods: POST, GET, OPTIONS');?>

But handling CORS requests properly is a tad more involved. Here is a function that will respond more fully. The updated code is this :

 <?php    // Allow from any origin    if (isset($_SERVER['HTTP_ORIGIN'])) {        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");        header('Access-Control-Allow-Credentials: true');        header('Access-Control-Max-Age: 86400');    // cache for 1 day    }    // Access-Control headers are received during OPTIONS requests    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))            header("Access-Control-Allow-Methods: GET, POST, OPTIONS");                 if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))            header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");        exit(0);    }    echo "You have CORS!";?>

I have found from another post It worked....


To allow CORS for all:

<?phpheader('Access-Control-Allow-Origin: *');header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');echo "You have CORS!";


Another reason is if you're missing a semicolon or something anywhere in your php, that CORS error message will be the only error that is displayed by the ajax, even if error reporting is on, while you can see the actual error by going to the php url in your browser.