Вот что я сделал, чтобы решить эту проблему, основываясь на комментариях в моем вопросе:
Вместо того, чтобы вводить file
непосредственно как body
запроса, я поместил его внутри FormData
.
// JS
var form = new FormData();
form.append("pdf", file);
fetch("https://upload.pdf.local/" + cur_folder, {
//fetch("http://localhost/api/" + cur_folder, {
method: "post",
//mode: "cors",
headers: {
"Content-Type": "multipart/form-data"
},
body: form
});
Теперь запрос OPTIONS
пропал, но запрос POST
по-прежнему не выполняется без установки заголовка Access-Control-Allow-Origin
равным request.ReferrerUrl
.
// C# .NET 4.7.2
// CefSharp.WinForms v67.0.0
public IResourceHandler Create(IBrowser browser, IFrame frame, string schemeName, IRequest request)
// .......
Directory.CreateDirectory(folder);
var filename = DateTime.UtcNow.ToString("yyyy-MM-dd-HH-mm") + ".pdf";
folder = Path.Combine(folder, filename);
File.Copy(data.File, folder, false);
var rh = (ResourceHandler)ResourceHandler.ForErrorMessage("Yay!", System.Net.HttpStatusCode.OK);
rh.Headers["Access-Control-Allow-Origin"] = "https://viewer.pdf.local";
return rh;
// .......
}