127.0.0.1:3000/info
has been blocked by CORS policyрешена.
теперь ожидаются данные, вроде таких {"username": "123"}
Access to XMLHttpRequest at 'localhost:3000/info' from origin '127.0.0.1:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
POST localhost:3000/info net::ERR_FAILED
xhr.setRequestHeader('Content-Type', 'application/json'); // 'application/json' 'application/x-www-form-urlencoded'
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
xhr.setRequestHeader('Access-Control-Allow-Methods', 'GET, OPTIONS, POST');
xhr.setRequestHeader('Access-Control-Allow-Headers', 'Content-Type');
xhr.setRequestHeader('X-CSRFToken', csrftoken); // отправляет: в заголовках вижу, например: X-CSRFToken
678
ожидается, что вы будете слать JSON, а не форму - для работы с формой есть другие ...
или ctrl+shift+v
let mut path = String::new();
let _io_path = std::io::stdin().read_line(&mut path).unwrap();
path = (*path.trim()).to_string();
Так этож и так по умолчанию работает. Зачем что-то руками ещё реализовывать?например, я скопировал (Ctr+C) нужный мне фрагмент и при наличии в терминале `курсора-метки` вместо того, чтобы набирать ручками делаю (Ctr+V), но вставляется не этот фрагмент, а буквально символы: '^V', а хочу получить текст визуально, чтобы мог, например, в конце пару символов добавить с клавы или изменить.
// Если делал так:
let cwd = std::env::current_dir().unwrap().parent().unwrap();
let my_path = &cwd.to_str().unwrap();
// и в дальнейшем, использовал my_path в своём коде так:
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
...txt".to_string() + &my_path + "txt...
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// то выдавало ошибку:
// error[E0716]: temporary value dropped while borrowed
// creates a temporary value
// Если всё в одну строку - то работает:
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
...txt".to_string() + &std::env::current_dir().unwrap().parent().unwrap().to_str().unwrap() + "txt...
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
let cwd = std::env::current_dir().unwrap().parent().unwrap();
error[E0599]: no method named `into_os_string` found for reference `&Path` in the current scope
|
88 | let my_path = cwd.into_os_string().into_string().unwrap();
| ^^^^^^^^^^^^^^ method not found in `&Path`
Arc нужно клонировать до move в замыкание, которое запускается на потоке. Если данные используются только на чтение, то этого будет достаточно, ...
#[derive(Debug)]
pub struct Data {
pub name: String,
pub dtime: chrono::DateTime<chrono::Local>,
pub id: i32,
pub n: u32,
}
//
let data = Data { name: "txt".to_string(), dtime: DateTime::parse_from_rfc3339("2023-07-10T10:20:30+03:00").unwrap().into(), id: 188, n: 5 };
Vec<String> = vec![]
не получилось такой массив:
Vec<&str> = vec![]
правильно ли я вообще делаю в примере?