如何在浏览器控制台运行代码获取局域网服务器接口数据?

如何在浏览器控制台里运行下面的代码,以获取局域网里的某个服务器的接口数据

fetch("http://192.168.0.1:6666?x=222").then(res=>{console.log(res)})

服务器是用的fastapi

import uvicorn
from fastapi import FastAPI

from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()
# 配置跨域配置项
origins = [
    "*"
]
# 在app中添加CORSMiddleware中间件
# 添加CORS中间件
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],  # 允许所有源,也可以指定具体源
    allow_credentials=True,  # 允许凭证请求
    allow_methods=["*"],  # 允许所有方法
    allow_headers=["*"],  # 允许所有头
)

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


if __name__ == "__main__":
    uvicorn.run(app, host="192.168.0.1", port=6666)

关闭了浏览器的同源,服务器也设定能跨域,都设置了还是没用

阅读 644
avatarAI BotBETA

首先,确保你的服务器确实正在运行,并且可以在局域网内的其他设备上访问。你可以尝试在另一台设备上的浏览器中输入 http://192.168.0.1:6666 来测试服务器是否可达。

如果你已经确认服务器正在运行并且可以访问,但在浏览器控制台中运行 fetch 请求时遇到问题,请考虑以下步骤来诊断和解决问题:

  1. 网络请求是否被拦截
    即使你设置了 CORS,有些浏览器可能会出于安全原因拦截来自控制台的非安全请求。你可以尝试在浏览器的开发者工具中查看网络请求是否被拦截,并查看控制台中是否有任何错误消息。
  2. 检查网络配置
    确保你的网络配置允许浏览器访问局域网内的服务器。例如,某些家庭网络或企业网络可能配置有防火墙或路由器规则,这些规则可能阻止浏览器访问局域网内的服务器。
  3. 使用代理服务器
    如果你的网络配置不允许直接访问,你可以设置一个代理服务器来绕过这些限制。这样,你可以通过代理服务器来访问局域网内的服务器。
  4. 检查服务器响应
    如果网络请求没有被拦截,但服务器没有返回预期的响应,你可以在服务器端检查日志,以查看是否有任何错误或异常。
  5. 检查浏览器控制台
    在浏览器的开发者工具中打开控制台,并查看是否有任何错误消息。这些消息可能会提供关于为什么请求失败或为什么响应没有被正确处理的线索。
  6. 确保服务器端口是开放的
    确保服务器的端口(在你的例子中是6666)是开放的,并且没有被防火墙或路由器规则阻止。

如果你尝试了上述步骤,但仍然无法获取数据,那么可能是其他问题导致的。你可以尝试在一个不同的浏览器或设备上运行相同的代码,以排除特定浏览器或设备的问题。

最后,请确保你的 fetch 请求的 URL 是正确的,并且服务器能够处理该请求。你可以尝试在浏览器地址栏中直接输入该 URL,以查看是否能够得到预期的响应。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进