Существует бэкэнд, написанный на C ++, который обрабатывает HTTP-запросы (используя JSON).Интерфейс использует семантический интерфейс, но для отправки запроса используется ajax:
$(document).ready(function () {
function createProjectJson(projectName) {
var ret = JSON.stringify({
project: {
identity: {
name: projectName
}
}
})
return ret;
}
var endpoints = {
'createProject': 'http://127.0.0.1:1912/api/projects'
}
$('form .submit.button').click(function (event) {
var proName = $("#createPro").val();
if(proName.length === 0)
event.preventDefault();
else
{
var payload = createProjectJson(proName);
$.ajax({
dataType: "json",
url: endpoints.createProject,
data: payload,
method: "POST"
}).done(function( json ) {
console.log("done");
})
.fail(function( xhr, status, errorThrown ) {
console.log( "Error: " + errorThrown );
console.log( "Status: " + status );
console.dir( xhr );
});
}
});
});
Форма выглядит так:
<form class="ui form">
<div class="field">
<label>Project name</label>
<div class="field">
<input id="createPro" type="text" name="name" placeholder="Give the project a name">
</div>
</div>
<div class="ui checkbox">
<input type="checkbox" class="hidden">
<label>Project enabled</label>
</div>
<div class="ui submit button">Create</div>
</form>
Согласно CORS ,не должно быть срабатывания CORS.Почему я получаю эту ошибку:
Веб-сервер работает на 172.0.0.1:5500 (я использую серверный плагин live вКод VS).Я также реализовал CORS на бэкэнде (повторяя источник в ответе CORS) на PUT, с той же ошибкой.Я попытался использовать * (в Access-Control-Allow-Origin) в ответе CORS, тот же результат.Данные ответа сервера - просто пустое {}
.Кроме того, я проверил бэкэнд (без необходимости в OPTIONS) и wireshark не показывал никаких других пакетов в качестве ответа POST +.