小编Cai*_*awa的帖子

使用 Cors::permissive() 在 Actix Web 后端上被 CORS 阻止

我正在尝试使用 Rust 构建一个简单的后端,但我不断遇到 CORS 错误。

我的反应前端说:

Access to XMLHttpRequest at 'http://127.0.0.1:3002/auth' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)

这是我的后端代码:

// Route Config //
pub fn routes(cfg: &mut web::ServiceConfig) { 
    cfg.route("/auth", web::get().to(auth_handler));
}

// Handler Config //
async fn auth_handler() -> impl Responder { 
    HttpResponse::Ok().json("Works")
}

#[actix_rt::main]
async fn main() -> io::Result<()> { 
    let app = move || App::new().configure(routes);
    let _cors = Cors::permissive();
    HttpServer::new(app).bind("127.0.0.1:3002")?.run().await
}
Run Code Online (Sandbox Code Playgroud)

据我了解, CORS::permissive() 函数应该允许所有跨站点交互工作。是我误解了文档,还是我实施错误了?

rust actix-web

3
推荐指数
1
解决办法
1505
查看次数

如何在for循环中跟踪先前的索引?(锈)

我想看看向量中有多少数字比前一个数字大。到目前为止,这是我的代码:

fn get_result(depths: &Vec<u32>) { 
    let mut result: Vec<u32> = Vec::new();
    for (idx,num) in depths.iter().enumerate() { 
        if depths[idx - 1] > depths[idx] { 
            result.push(depths[idx]);
    }
    
}
println!("{:?}", result);
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它给出以下错误:

thread main panicked at 'attempt to subtract with overflow'
Run Code Online (Sandbox Code Playgroud)

我知道这是由深度 [idx - 1] 引起的,但我不完全确定如何跟踪以前的索引。

loops rust

2
推荐指数
1
解决办法
2026
查看次数

python 匹配函数的语法无效

我对这个错误感到非常困惑。我想做的就是使用 match 函数,但我不断收到语法错误,即使我相信这没有任何问题。

这是我的代码:

def compile(code):
    code_ptr = 0;
    mem_ptr = 0;
    memory = [0] * 1000
    loop = []

    while code_ptr > len(code):
        command = code[code_ptr]
        match command:
            case '>':
                mem_ptr += 1
            case '<':
                mem_ptr -= 1
            case: '+':
                memory[mem_ptr] + 1
            case '-':
                memory[mem_ptr] - 1
        code_ptr += 1

    print(memory)
Run Code Online (Sandbox Code Playgroud)

这是错误:

    match command:
          ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我正在运行Python 3.8.5

python

2
推荐指数
1
解决办法
1531
查看次数

无法将 React 状态设置为对象数组

我正在尝试通过 Axios get 请求将 React 状态设置为对象数组。但是,当我尝试更新状态时,它显示为空数组。

我知道我从 API 收到了正确的响应,所以我认为在更新状态时我遗漏了一些东西。

这是我的代码:

const Home = () => {
const [movieTitle, setMovieTitle] = useState('');
const [searchResults, setSearchResults] = useState([]);

const handleChange = (e) => {
    setMovieTitle(e.target.value);
};

const getMovieData = () => {
    const apiKey = 'didntleakit';
    const apiUrl  = 'http://www.omdbapi.com/?apikey=' + apiKey + '&s=' + movieTitle;
    Axios.get(apiUrl)
        .then((res) => {
            setSearchResults(res.data.Search);
        });
    console.log(searchResults);
};

return(
    <div>
      <p>Home page</p>
      <TextField defaultValue="Movie" onChange={(e) => handleChange(e)}/>
      <button onClick={getMovieData}/>
    </div>
);
Run Code Online (Sandbox Code Playgroud)

};

reactjs axios

1
推荐指数
1
解决办法
1301
查看次数

标签 统计

rust ×2

actix-web ×1

axios ×1

loops ×1

python ×1

reactjs ×1