相关疑难解决方法(0)

Access-Control-Allow-Credentials标头到底具有什么作用?

我试图了解如何使用CORS,并对Access-Control-Allow-Credentials标题的作用感到困惑.

文件

指示凭证标志为true时是否可以公开对请求的响应.

但我不明白"暴露"的反应意味着什么.

任何人都可以解释这个标题被设置为true(与设置为true的凭证标志一起)实际上是什么?

http-headers cors

144
推荐指数
1
解决办法
8万
查看次数

FastAPI:CORS 中间件不支持 GET 方法

我尝试在 FastAPI 框架上使用 CORS,但它不适用于 GET 方法

这是我正在处理的代码:


from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

app.add_middleware(
    CORSMiddleware,
    allow_origins=['*'],
    allow_methods=["*"],
    allow_headers=["*"],
)


@app.get("/test1")
async def test1():
    return {"message": "Hello World"}

Run Code Online (Sandbox Code Playgroud)

fastapi

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

fetch-api 请求(GET 和 POST)失败。我很失落

我已经为钱编写代码 20 多年了,但我没有理由回答这个问题。

天哪,我用谷歌搜索过它。我知道这里有很多半相同的问题,我想我已经阅读了所有的回答,并尝试了所有建议的模式。许多问题都没有得到特别明确的阐述,而且我的案例似乎有点自相矛盾(所有部分都是孤立工作的)。请耐心等待,我会尽力而为。

前面使用 svelte-kit,后面使用 fastapi。

首先,下面是我的“Buttons.svelte”组件,逐字复制。

<script lang="javascript">

    async function worksJustFine() {
        fetch("https://jsonplaceholder.typicode.com/todos")
            .then(response => {
                console.log(" response", response)
                console.log(" r.json() >", response.clone().json())
                response.json()
                    .then(json => {
                        console.log("json", json)
                    })
                    .catch(error => console.log(error))
            })
    }


    async function doesNotWork() {
        fetch(`http://localhost:8000/api/test_url?test_param=1`)
            .then(response => {
                console.log(" response", response)
                console.log(" r.json() >", response.clone().json())
                response.json()
                    .then(json => {
                        console.log("json", json)
                    })
                    .catch(error => console.log(error))
            })
    }
</script>

<buttons>
    <button class="btn btn-outline-primary btn-lg" on:click={worksJustFine}>OK</button>
    <button class="btn btn-outline-primary btn-lg" on:click={doesNotWork}>NOT OK</button>
</buttons>

<style lang="scss"> …
Run Code Online (Sandbox Code Playgroud)

javascript server-sent-events fetch-api svelte fastapi

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

FastAPI 不会将 cookie 返回到 React 前端

为什么 FastAPI 不将 cookie 返回到我的前端(这是一个 React 应用程序)?

这是我的代码:

@router.post("/login")
def user_login(response: Response,username :str = Form(),password :str = Form(),db: Session = Depends(get_db)):
    user = db.query(models.User).filter(models.User.mobile_number==username).first()
    if not user:
        raise HTTPException(400, detail='wrong phone number or password')
    if not verify_password(password, user.password):
        raise HTTPException(400, detail='wrong phone number or password')
    
   
    access_token = create_access_token(data={"sub": user.mobile_number})
    response.set_cookie(key="fakesession", value="fake-cookie-session-value") #here I am set cookie 
    return {"status":"success"}  
Run Code Online (Sandbox Code Playgroud)

当我从 Swagger UI autodocs 登录时,我可以使用 Chrome 浏览器上的 DevTools 在响应标头中看到 cookie。但是,当我从 React 应用程序登录时,没有返回 cookie。我正在使用 axios 发送这样的请求:

await axios.post(login_url, formdata)

javascript python reactjs axios fastapi

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

React 不显示来自 FastAPI 后端应用程序的 POST 响应

我有一个简单的 React Ui,它应该从中获取 json 文件localhost:8000/todo并在localhost:3000. 这是所需的输出: 在此输入图像描述

然而,这就是我得到的: 在此输入图像描述

所以,这两行是“读一本书”。和“骑自行车环城”。没有显示。这两行应该来自localhost:8000/todo类型JSON信息。我觉得我可以从 获取数据localhost:8000/todo,但我不知道如何在 中显示它们localhost:3000,这是我的输出。

这是我为此提供的功能:

export default function Todos() {
  const [todos, setTodos] = useState([])
  const fetchTodos = async () => {
    const response = await fetch("http://localhost:8000/todo")
    const todos = await response.json()
    setTodos(todos.data)
  }
  useEffect(() => {
    fetchTodos()
  }, [])
  return (
    <TodosContext.Provider value={{todos, fetchTodos}}>
      <AddTodo />  
      <Stack spacing={5}>
        {todos.map((todo) => (
          <b>{todo.item}</b>
        ))}
      </Stack>
    </TodosContext.Provider>
  )
}
Run Code Online (Sandbox Code Playgroud)

{todos.item}是应该打印项目的部分,但它没有!

这是控制台日志信息: 在此输入图像描述 在此输入图像描述

以下是 …

python cors reactjs fastapi

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