Flutter Web调用自己建的api,返回DioError [DioErrorType.RESPONSE]: XMLHttpRequest error.
原因是api需要设置Access-Control-Allow-Origin. 浏览器环境有跨域限制,服务器返回的输出头中必须有相应的设置才能在js中调用(flutterweb最终转换的代码是js)
代码:
from fastapi.responses import JSONResponse
from fastapi import FastAPI,Response
@app.get("/res")
def get_headers():
content = [ ' content' ]
headers = {"Access-Control-Allow-Origin": "*"}
return JSONResponse(content=content, headers=headers)