有一个用C ++编写的后端,用于处理HTTP请求(使用JSON)。 前端使用语义ui,但是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。为什么会出现此错误:
Web服务器在172.0.0.1:5500上运行(我在VS代码中使用实时服务器插件)。
我也在后端在PUT上实现了CORS(在CORS响应中回显了原点),但存在相同的错误。我尝试在CORS响应中使用*(在Access-Control-Allow-Origin中),结果相同。
服务器响应数据只是一个空的{}
。
此外,我检查了后端(没有OPTIONS请求),wireshark没有将任何其他软件包显示为POST +响应。
答案 0 :(得分:1)
http://127.0.0.1:1912
中运行,而资源在http://127.0.0.1:5500
中。不同的端口意味着不同的起源,因此这是CORS请求。