我正在使用Nancy托管内部网站,我需要使用 名称中的国际字符(é,á,ü等) 这是帖子处理程序:
Post["/savefile"] = _ => {
var file = Request.Files.Single();
byte[] bytes = Encoding.Default.GetBytes(file.Name);
var fullname = string.Format("{0}{1}_{2}", @"C:\Files\", "Test", Encoding.UTF8.GetString(bytes));
try {
using (var filestream = File.OpenWrite(fullname)) {
file.Value.CopyTo(filestream);
}
return "OK";
} catch (Exception ex) {
return ex.Message;
}
以及Angular中的请求:
SaveFile(){
const fd = new FormData();
fd.append('File',this.file,encodeURIComponent(this.selectedFile));
this.httpClient.post('http://localhost:61210/savefile',fd,{responseType:'text'}).subscribe(result=>{
alert(result);
});
}
该文件名中使用常规字符,但是我收到“从源'http://localhost:61210/savefile'访问'http://localhost:4200'处XMLHttpRequest的信息已被CORS策略阻止:没有'Access-Control-允许来源的标头出现在所请求的资源上。”当我尝试匈牙利字符。 我很确定这与字符编码有关,但是我想念什么?