Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.100.2:8100' is therefore not allowed access. The response had HTTP status code 404.
Iam getting above error while trying to call put/post request in iot ESP8266 webserver.
Inorder to solve this , I tried adding below code. But nothing worked.
server.on("/", HTTP_OPTIONS, []() {
server.sendHeader("Access-Control-Allow-Origin", "*");
server.sendHeader("Allow", "HEAD,GET,PUT,POST,DELETE,OPTIONS");
server.sendHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT");
server.sendHeader("Access-Control-Allow-Headers", "X-Requested-With, X-HTTP-Method-Override, Content-Type, Cache-Control, Accept");
});
server.on("/testPost", HTTP_POST, testCors);
server.on("/testPut", HTTP_PUT, testCors);
And inside the function
void testCors()
{
Serial.print("HTTP Method: ");
Serial.println(server.method());
server.sendHeader("Access-Control-Allow-Origin", "*");
server.sendHeader("Allow", "HEAD,GET,PUT,POST,DELETE,OPTIONS");
server.sendHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT");
server.sendHeader("Access-Control-Allow-Headers", "X-Requested-With, X-HTTP-Method-Override, Content-Type, Cache-Control, Accept");
server.send(200, "text/plain", "");
}
Thanks