【发布时间】:2017-07-12 01:50:27
【问题描述】:
我正在尝试使用fetch 进行简单的发布请求:
const headers = new Headers({
Accept: 'application/json',
'Content-Type': 'application/json',
});
fetch('/checkout/billing', {
headers,
body,
credentials: 'include',
method: 'POST',
})
.catch(console.error);
并且服务器端端点看起来像:
if (!validateResult) {
res.redirect('/checkout/shipping');
} else {
view.render('checkout/billing')
}
因此,当我使用常规 HTML 表单提交时,它可以正常工作(重定向或呈现),但是当我使用 fetch 而不是重定向或呈现时,我会收到 HTML 正文作为响应,就像我会使用 @987654325 @,知道什么会导致这个问题吗?
【问题讨论】:
-
您的路径
checkout/billing解析为什么?如果是html,那么你得到的是正常的 -
在
view.render('checkout/billing')?它是 html 模板的路径,但它不应该将 html 作为响应返回给我,它应该呈现该页面 -
你所谓的渲染页面实际上是将html发送到客户端(你的浏览器)以便它可以渲染。所以是的,它应该返回 html。我会尝试在答案中澄清:)
-
好的,我会试着澄清我的问题)当我使用 html 提交时,它会做它应该做的事情,发送 post 请求,接收 html 正文并自动呈现页面,或重定向到页面(如果
res.redirect()),但现在它只是发送原始html作为响应
标签: javascript html node.js ajax fetch