【发布时间】:2019-01-02 10:58:45
【问题描述】:
我有一个节点 js API。
app.post('/myapi', function (req, res) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, X-Request-With");
res.header("Content-Type", "application/json");
res.header("Accept", "application/json");
* do something *
res.json({ api : "api called successfully" });
});
我在公共文件夹中放置了一个 html 代码。我正在使用 express 来运行 html 代码和后端 API。 我的 html 代码请求获取为,
var headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json, text/plain, */*');
var options = {
method: 'POST',
body: JSON.stringify(loginDetails),
headers: headers,
mode: 'no-cors'
};
fetch('http://localhost:3001/myapi', options)
.then(function (response) {
console.log(response);
res=response.statusCode;
// return response
if (res==0) {
window.location.assign("http://localhost:3001/home.html");
}
});
当我在浏览器中运行代码时。当我单击调用上述前端代码的按钮时。它发送两个请求。两次通话都失败了。一个是 localhost 请求,它是文档调用,另一个是 API 调用。但是 API 调用没有响应。
我在 UI 中收到 / 调用的响应,
cannot POST/
所以我尝试添加以下代码,
app.post('/', function (req, res) {
res.json({ "status": "successfull" });
});
现在也有两个调用,但 UI 返回 {status :successful}(/ 的输出)。但它没有返回 /myapi 的输出。
有人可以帮忙吗?
【问题讨论】:
-
您好,您有错误信息要分享吗?
-
嗨,我没有收到错误消息。但是对 /myapi 的调用被取消,但浏览器正在加载“localhost:port/”响应。两者同源。
-
使用您的代码我无法重现该问题。我能够收到请求。您还有其他详细信息吗?
标签: javascript node.js rest api