gpt4 book ai didi

node.js - 不允许 POST 请求 - 不允许 405 - nginx,即使包含 header

转载 作者:IT老高 更新时间:2023-10-28 21:54:45 25 4
gpt4 key购买 nike

我在尝试在我的应用程序中执行 POST 请求时遇到问题,我进行了很多搜索,但没有找到解决方案。

所以,我有一个 nodeJS 应用程序和一个网站,我正在尝试使用来自该网站的表单进行 POST 请求,但我总是以这种方式结束:

enter image description here

在控制台中我看到了:

    Uncaught TypeError: Cannot read property 'value' of null 
Post "http://name.github.io/APP-example/file.html " not allowed

就是在这行代码中:

文件.html:

<form id="add_Emails" method ="POST" action="">

<textarea rows="5" cols="50" name="email">Put the emails here...
</textarea>

<p>
<INPUT type="submit" onclick="sendInvitation()" name='sendInvitationButton' value ='Send Invitation'/>
</p>


</form>

<script src="scripts/file.js"></script>

文件.js:

function sendInvitation(){

var teammateEmail= document.getElementById("email").value;

我阅读了许多关于跨域的帖子和文档,但没有成功。研究来源1:http://enable-cors.org/server.html研究来源2:http://www.w3.org/TR/2013/CR-cors-20130129/#http-access-control-max-age

我现在在做什么:

我正在尝试从我的服务器的不同域发布:

发布请求:http://name.github.io/APP-example/file.html , github 仓库

POST LISTENER : "http://xxx.xxx.x.xx:9000/email , 服务器 localhost (x-> 我的 ip 地址)

所以,我在其他文件中遇到了同样的问题,但我修复了它,将这段代码放在每条路线的开头:

var express = require('express');
var sha1 = require('sha1');

var router = express.Router();
var sessionOBJ = require('./session');

var teams = {}
var teamPlayers = []

router.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods", "PUT, GET,POST");
next();
});

我解决了它。

现在,我遇到了同样的问题,但在这个文件中,唯一的区别是我处理 SMTP 和电子邮件,所以我发布了一封电子邮件并将一封电子邮件发送到我在 POST 请求中收到的这封电子邮件。

该代码在 POSTMAN 中运行良好,因此,当我使用 POSTMAN 进行测试时,它可以正常工作并且我可以发布。

我在下面添加了这段代码,而不是我展示的第一个代码,但它也不起作用:

router.all('*', function(req, res, next){
res.header("Access-Control-Allow-Origin", "*")
res.header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
res.header("Access-Control-Allow-Headers", "Origin, Content-Type, Accept")
res.header("Access-Control-Max-Age", "1728000")
next();
});

有人知道如何解决吗?

谢谢。

最佳答案

这个配置到你的 nginx.conf 应该对你有帮助。

https://gist.github.com/baskaran-md/e46cc25ccfac83f153bb

server {
listen 80;
server_name localhost;

location / {
root html;
index index.html index.htm;
}

error_page 404 /404.html;
error_page 403 /403.html;

# To allow POST on static pages
error_page 405 =200 $uri;

# ...
}

关于node.js - 不允许 POST 请求 - 不允许 405 - nginx,即使包含 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24415376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com