У меня возникла проблема с попыткой выполнить запрос POST в моем приложении, и я много искал, но я не нашел решение.
Итак, у меня есть приложение nodeJS и веб-сайт, и я пытаюсь выполнить запрос POST с использованием формы с этого сайта, но я всегда получаю следующее:
а в консоли я вижу:
Uncaught TypeError: Cannot read property 'value' of null
Post "http://name.github.io/APP-example/file.html " not allowed
который находится в этой строке кода:
file.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>
file.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
Что я делаю сейчас:
Я пытаюсь выполнить POST из другого домена моего сервера:
ПОЧТОВЫЙ ЗАПРОС: http://name.github.io/APP-example/file.html, репозиторий github
POST LISTENER: http://xxx.xxx.x.xx:9000/email, localhost (x- > my ip address) сервера
Итак, у меня была такая же проблема в других файлах, но я исправил ее, ставя этот код в начало каждого маршрута:
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();
});
Кто-нибудь знает, как его решить?
Спасибо.