- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
应用程序在本地构建良好,可在本地生产服务器 + 开发服务器上运行。用于获取数据的 API 工作正常。
产生错误的代码
export const getStaticProps = async () => {
const resp = await fetch(
'https://cdn-api.co-vin.in/api/v2/admin/location/states',
{
headers: {
'User-Agent': '*',
}, //this is required by api provider
}
);
const data = await resp.json();
//console.log('states in getStaticProps : ', data);
return { props: { data: JSON.parse(JSON.stringify(data)) } };
};
const Ninjas = ({ data: { states } }) => {
console.log('Ninjas : ', states);
return (
<>
<Head>
<title> Listing</title>
</Head>
<div>
{states.map((ei) => (
<div key={ei.state_id}>
<a className={styles.single}>
<h3>{ei.state_name}</h3>
</a>
</div>
))}
</div>
</>
);
};
export default Ninjas;
以下是vercel日志
20:17:40.644 Cloning github.com/user-name/co2-app (Branch: main, Commit: 8ab0e48)
20:17:41.349 Cloning completed: 704.592ms
20:17:41.374 Analyzing source code...
20:17:42.573 Installing build runtime...
20:17:45.235 Build runtime installed: 2.662s
20:17:48.104 Looking up build cache...
20:17:48.453 Build cache not found
20:17:49.697 Installing dependencies...
20:18:04.559 > ejs@2.7.4 postinstall /vercel/path0/node_modules/ejs
20:18:04.559 > node ./postinstall.js
20:18:05.113 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents):
20:18:05.113 npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
20:18:05.116 added 600 packages from 352 contributors in 14.87s
20:18:05.426 64 packages are looking for funding
20:18:05.426 run `npm fund` for details
20:18:05.492 Detected Next.js version: 10.2.0
20:18:05.492 Running "npm run build"
20:18:05.756 > we2-cowax@0.1.0 build /vercel/path0
20:18:05.757 > next build
20:18:07.292 info - Using webpack 4. Reason: custom webpack configuration in next.config.js https://nextjs.org/docs/messages/webpack5
20:18:08.224 info - Checking validity of types...
20:18:08.244 Attention: Next.js now collects completely anonymous telemetry regarding usage.
20:18:08.245 This information is used to shape Next.js' roadmap and prioritize features.
20:18:08.245 You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
20:18:08.245 https://nextjs.org/telemetry
20:18:08.326 info - Creating an optimized production build...
20:18:08.748 > [PWA] Compile client (static)
20:18:08.748 > [PWA] Auto register service worker with: /vercel/path0/node_modules/next-pwa/register.js
20:18:08.750 > [PWA] Service worker: /vercel/path0/public/service-worker.js
20:18:08.750 > [PWA] url: /service-worker.js
20:18:08.750 > [PWA] scope: /
20:18:08.860 > [PWA] Compile server
20:18:25.603 info - Compiled successfully
20:18:25.604 info - Collecting page data...
20:18:26.366 info - Generating static pages (0/3)
20:18:26.918 error : invalid json response body at https://cdn-api.co-vin.in/api/v2/admin/location/states reason: Unexpected token < in JSON at position 0
20:18:26.919 Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
20:18:26.919 Error: Error serializing props returned from `getStaticProps` in "/".
20:18:26.919 Reason: Props must be returned as a plain object from getStaticProps: `{ props: { ... } }`.
20:18:26.919 at isSerializableProps (/vercel/path0/node_modules/next/dist/lib/is-serializable-props.js:1:462)
20:18:26.919 at renderToHTML (/vercel/path0/node_modules/next/dist/next-server/server/render.js:30:1730)
20:18:26.919 at processTicksAndRejections (internal/process/task_queues.js:93:5)
20:18:26.919 at async /vercel/path0/node_modules/next/dist/export/worker.js:26:6
20:18:26.919 at async Span.traceAsyncFn (/vercel/path0/node_modules/next/dist/telemetry/trace/trace.js:6:584)
20:18:26.920 info - Generating static pages (3/3)
20:18:26.921 > Build error occurred
20:18:26.926 Error: Export encountered errors on following paths:
20:18:26.926 /
20:18:26.926 at /vercel/path0/node_modules/next/dist/export/index.js:31:1106
20:18:26.926 at async Span.traceAsyncFn (/vercel/path0/node_modules/next/dist/telemetry/trace/trace.js:6:584)
20:18:26.927 at async /vercel/path0/node_modules/next/dist/build/index.js:43:49
20:18:26.927 at async Span.traceAsyncFn (/vercel/path0/node_modules/next/dist/telemetry/trace/trace.js:6:584)
20:18:26.927 at async /vercel/path0/node_modules/next/dist/build/index.js:25:1475
20:18:26.927 at async Span.traceAsyncFn (/vercel/path0/node_modules/next/dist/telemetry/trace/trace.js:6:584)
20:18:26.954 npm ERR! code ELIFECYCLE
20:18:26.954 npm ERR! errno 1
20:18:26.958 npm ERR! co2-app@0.1.0 build: `next build`
20:18:26.958 npm ERR! Exit status 1
20:18:26.958 npm ERR!
20:18:26.959 npm ERR! Failed at the we2-cowax@0.1.0 build script.
20:18:26.959 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
20:18:26.968 npm ERR! A complete log of this run can be found in:
20:18:26.968 npm ERR! /vercel/.npm/_logs/2021-05-17T14_48_26_959Z-debug.log
20:18:26.982 Error: Command "npm run build" exited with 1
我将 next-pwa 用于 PWA 功能,因此使用自定义 webpack 版本
在Vercel删除了app,重新部署,甚至删除了缓存构建,还是无法解决错误
最佳答案
API 返回 403 禁止错误:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD>
<BODY>
<H1>403 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Request blocked.
We can't connect to the server for this app or website at this time. There might be too much traffic or a
configuration error. Try again later, or contact the app or website owner.
<BR clear="all">
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: BqNxi8x1nTA3YKM_N3JSCyjGVDYnMUDNFvS_HgJGB8glTFr1uVh6Ug==
</PRE>
<ADDRESS>
</ADDRESS>
</BODY>
</HTML>
您的 getStaticProps
函数无法正确处理(在这种情况下,无法将无效响应转换为 JSON;另外,您的用户代理无效):
export const getStaticProps = async () => {
const resp = await fetch(
'https://cdn-api.co-vin.in/api/v2/admin/location/states',
{
headers: {
'User-Agent': '*',
}, //this is required by api provider
}
);
// this throws an error because you can't turn
// the invalid server response into JSON
const data = await resp.json();
return { props: { data: JSON.parse(JSON.stringify(data)) } };
};
您的 Ninjas
组件也未正确处理 - states
将未定义,因为服务器未响应有效数据并且您不能映射 undefined variable 。相反,您应该在使用 lodash 的 isEmpty 映射之前检查状态是否为非空数组。 : !isEmpty(states) && states.map(...)
或通过检查它是否已定义并具有长度:Array.isArray(states) && states.length > 0 && states。 map (...)
。
import Head from "next/head";
import isEmpty from "lodash.isempty";
export const getStaticProps = async () => {
let data = [];
let error = "";
try {
const res = await fetch(
"https://cdn-api.co-vin.in/api/v2/admin/location/states",
{
method: "GET",
headers: {
// update with your user-agent
"User-Agent":
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",
Accept: "application/json; charset=UTF-8",
},
}
);
if (res.status !== 200)
throw String(`Invalid server response: ${res.status} ${res.statusText}`);
data = await res.json();
if (isEmpty(data)) throw String("No data was found!");
data = JSON.parse(JSON.stringify(data));
} catch (e) {
error = e.toString();
}
return {
props: {
data,
error,
},
};
};
const Ninjas = ({ data, error }) => (
<>
<Head>
<title> Listing</title>
</Head>
<div>
{error && <p style={{ color: "red" }}>{error}</p>}
{!isEmpty(data) && !isEmpty(data.states) &&
data.states.map((ei) => (
<div key={ei.state_id}>
<a className={styles.single}>
<h3>{ei.state_name}</h3>
</a>
</div>
))}
</div>
</>
);
export default Ninjas;
关于json - 无效的 json 响应正文错误,同时将 Next.js 应用程序部署到 Vercel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67580928/
我正在尝试检查 Entry 中是否存在重复项,并使用内联消息提醒用户该数字存在。 $(document).ready(function(){ $("#con1").blur(function(
我有一个基于类的 View 。我在引导模式上使用 Ajax。为了避免页面刷新,我想使用此类基于 View 返回 JSON 响应而不是 HTTP 响应,但我只看到了如何为基于函数的 View 返回 JS
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我有一个大型内部企业基于 Web 的应用程序在 IIS6 上运行 ASP.NET 3.5,生成 401 个“未经授权”响应,然后是 200 个“Ok”响应(如 Fiddler 所述)。我知道为什么会发
感谢您研究我的问题。 我有一个node/express服务器,配置了一个server.js文件,它调用urls.js,而urls.js又调用 Controller 来处理http请求,所有这些都配置相
当我使用以下命令时,我得到正确的 JSON 响应: $ curl --data "regno=&dob=&mobile=" https://vitacademics-rel.herokuapp.co
我有一个非常简单的 RESTful 服务,它通过 POST 接收一些表单数据,其目的是在云存储(Amazon S3、Azure Blob 存储等)中简单地保留文本主体(具有唯一 ID)作为一个文件..
UDP 不发送任何 ack,但它会发送任何响应吗? 我已经设置了客户端服务器UDP程序。如果我让客户端向不存在的服务器发送数据,那么客户端会收到任何响应吗? 我的假设是; 客户端 --> 广播服务器地
我有一个电梯项目,其中 有一个扩展 RestHelper 的类,看起来像这样 serve{ "api" / "mystuff" prefix { case a
我们正在寻求覆盖 Kong 错误响应结构并编写自定义消息(即用我们的自定义消息替换“超出 API 速率限制”、“无效的身份验证凭据”等)。 我们要找的错误响应结构(代码是自定义的内部错误代码,与HTT
我正在尝试监听 EKEventStoreChangedNotification 以检查当我的应用程序处于后台时日历是否已更改。 我在 View Controller 的 initWithNibMeth
我了解 javascript,并且正在学习 ASP.NET C# 我想要做什么(完成的是javascript): document.getElementById('divID-1'
是否可以过滤所有 har 对象并仅获取 POST 请求/响应?也许在初始化 BrowserMobProxyServer 期间是这样做的方法?我需要将 har 对象保存到文件中并上传到 har 查看器。
我正在尝试向 Oauth 的 API 发送响应。遗憾的是,Symfony2 文档在解释 $response->headers->set(...); 的所有不同部分方面做得很差。 这是我的 OauthC
我正在尝试测试用例来模拟 api 调用,并使用 python 响应来模拟 api 调用。 下面是我的模拟, with responses.RequestsMock() as rsps: url
在尝试在 Haskell 中进行一些领域驱动设计时,我发现自己遇到了这个问题: data FetchAccessories = FetchAccessories data AccessoriesRes
我正在与 ANT+ USB 棒连接,并用项目 react 器替换我自己天真的“MessageBus”,因为它看起来非常合适。 USB接口(interface)本质上是异步的(单独的输入/输出管道),我
我正在将项目迁移到AFNetworking 2.0。使用AFNetworking 1.0时,我编写了代码来记录控制台中的每个请求/响应。这是代码: -(AFHTTPRequestOperation *
我有以下代码段。 ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4){
我有问题......我在 php 中有一个监听器脚本可以执行以下操作: if ($count != 1) {echo 'no';} else { echo "yes";} 因此它会回显"is"或“
我是一名优秀的程序员,十分优秀!