アプリケーションで POST リクエストを実行しようとすると問題が発生し、多くの検索を行いましたが、解決策が見つかりませんでした。
したがって、nodeJS アプリケーションと Web サイトがあり、このサイトのフォームを使用して 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>
ファイル.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-年
私が今していること:
サーバーの別のドメインから POST しようとしています:
POST リクエスト: 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();
});
誰かがそれを解決する方法を知っていますか?
ありがとうございました。