При разработке сайта столкнулся с ошибками 405 cors. Почему не пишется информация в файл на php, js? вместо этого валятся ошибки
Сервер - пк на linux, nginx. Специально уже испаравлял конфиги NGINX, код с enable-cors.org/server_nginx.html , не должно быть cors ошибок и 405.
Суть - с полей ввода данных при нажатии кнопки информация должна отправляться на заапись в файл или отображаться на другую веб страницу этого же сайта, но вместо этого выдает ошибку CORS и 405, в чем дело?
Информация почему не записывается ни в веб страницу ни в файл?
Не работает код ни на jS ни PHP.
Код на JS (не рабочий кусок, 100 разных попыток уже было и записи в файл, и отправки по URL) -
let formData = new FormData(document.forms.input_data);
let xhr = new XMLHttpRequest();
xhr.open("POST", "http://127.0.0.1/postinf/inf.txt");
xhr.send(formData);
xhr.onload = () => alert(xhr.response);
console.log(JSON.stringify(formData));
/*let response = fetch('/postinf/inf.cgi', {
method: 'POST',
headers: {
'Content-Type': 'application/json;charset=utf-8'
},
body: JSON.stringify(formData)
});
let result = response.json();
alert(result.message);
*/
//serialize для передачи по url
function serialize (a) {
var s = [];
if (a.constructor === Array) {
for (var i=0; i<a.length; i++)
s.push(a[i].name + '=' + encodeURIComponent(a[i].value));
} else {
for (var j in a)
s.push(j + '=' + encodeURIComponent(a[j]));
}
return s.join('&');
}
Далее решил попробовать на PHP, начал с примера из книги PHP 7 (Котеров Симдянов) стр 80,
Код на PHP:
<head>
<title> Получение данных POST </title>
<meta charset='utf-8'>
</head>
<body>
<form action="/script.cgi?param=value" method="POST">
<p> Name1: <input type="text" name="name1"></p>
<p> Name2: <input type="text" name="name2"></p>
<p><input type="submit" value="Запустить сценарий!"></p>
</form>
</body>
Код для PHP на C:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char *remote_addr = getenv("REMOTE_ADDR");
char *content_length = getenv("CONTENT_LENGTH");
char *query_string = getenv("QUERY_STRING");
int num_bytes = atoi(content_length);
char *data = (char *)malloc(num_bytes + 1);
fread(data, 1, num_bytes, stdin);
data[num_bytes] = 0;
printf("Content-type: text/html\n\n");
printf("<!DOCTYPE html>");
printf("<html lang='ru'>");
printf("<head>");
printf("<title> Получение данных POST </title>");
printf("<meta charset='utf-8'>");
printf("</head>");
printf("<body>");
printf("<h1> Мы знае о тебе все </h1>");
printf("<p> ваш ip = %s</p>", remote_addr);
printf("<p> Количество байт данных: %d</p>", num_bytes);
printf("<p> Указанные параметры: %s</p>", data);
printf("<p> Получено через URL: %s</p>", query_string);
printf("</body></html>");
}
Почему эта дрянь только плюются ошибками и ничего никуда не записывает?