Roy*_*son 3 javascript localhost url-parameters fetch-api
我有一个 NodeJS 服务器运行在我电脑的 3001 端口上。我可以使用fetch访问本地主机的端点,就像这样:fetch("/api_endpoint")。
但是,我还想在我的 GET 请求中包含 url 参数。
通常,我可以通过这样做来包含 url 参数:
const url = new URL("localhost:3001")
const params = { sources: JSON.stringify(this.state.sources), timeRange: JSON.stringify(this.state.timeRange), minReacts: this.state.minReacts }
url.search = new URLSearchParams(params)
let data = await fetch(url)
Run Code Online (Sandbox Code Playgroud)
但是,这会引发错误:
获取 API 无法加载 localhost:3001?sources=%5B%22Confessions%22%2C%22Summer+Confessions%22%2C%22Timely+Confessions%22%5D&timeRange=%5B%222017-01-12T23%3A35%6AZ 22%2C%222019-01-12T23%3A35%3A07.667Z%22%5D&minReacts=20。对于 CORS 请求,URL 方案必须是“http”或“https”。
如何创建一个与 localhost 一起使用的获取请求,该请求也使用 URL 参数?
编辑:
添加http://到前面并不能解决问题。
访问 ' http://localhost:3001/?sources=%5B%22Confessions%22%2C%22Summer+Confessions%22%2C%22Timely+Confessions%22%5D&timeRange=%5B%222017-01-13T00% 3A00%3A17.309Z%22%2C%222019-01-13T00%3A00%3A17.310Z%22%5D&minReacts=20 ' from origin ' http://localhost:3000 ' 已被 CORS 策略阻止:No 'Access- Control-Allow-Origin' 标头存在于请求的资源上。如果不透明响应满足您的需求,请将请求的模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
根据 Quentin 的建议,我需要http://在localhost:3001. 代码变成了:
const url = new URL("http://localhost:3001")
Run Code Online (Sandbox Code Playgroud)
之后,我需要在我的服务器上启用 cors 以修复另一个错误。
因为我使用的是 express,所以我只是运行npm install cors然后将以下 2 行添加到我的服务器:
const cors = require("cors")
app.use(cors())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14076 次 |
| 最近记录: |