2017-10-07 12 views
0

私はnode.jsとJQueryを使って通信しています。私のnode.js Expressサーバーに投稿リクエストを送信すると、リクエストを受け取りますが、応答は得られません。node.js expressモジュールにAjaxが応答していません

クライアントコード:

 $("#submitdetails").click(function(){ 
    $.post("http://neztorian.xyz:26/", 
    { 
     name: "Donald Duck", 
     city: "Duckburg" 
    }, 
    function(data, status){ 
     alert("Data: " + data + "\nStatus: " + status); 
    }); 

}); 

Severのコード:

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
console.log("Running"); 
app.post('/', function (req, res) { 
console.log(req.body); 

res.send("recieved"); 

}) 
app.listen(26); 

サーバがコンソールにPOSTリクエストとログを受信するが、警告メッセージがクライアントに表示されません。ご協力ありがとうございました。申し訳ありませんが、これは愚かな質問です。

編集:ありがとうございました。問題は:Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://neztorian.xyz:26' is therefore not allowed access.私は、サーバーにそのヘッダーを追加することによって問題を修正しました。

+0

'#のsubmitdetails'は何ですか?それはフォームの一部であり、ページは爽やかですか?もしそうなら、クリックまたはサブミットハンドラのデフォルトアクションを防ぐ必要があります。また、ajaxでエラーハンドラを使用して詳細を確認してください – charlietfl

+0

ブラウザでコンソールを確認すると、 'No 'Access-Control-Allow-Origin'ヘッダが要求されたリソースに存在するように見えます。したがって、Origin 'http://neztorian.xyz:26'はアクセス不可となります。 – rckrd

+0

次に、[[現在](https://stackoverflow.com/questions/20035101/why-does-my-javascript-get-a-no-access-control-allow-origin-header-is-present)、[no-access-control (https://stackoverflow.com/questions/43871637/no-access-control-allow-origin-header-is-present-aligner-header-is-present-new-access-control-allow-home-source-home-source-holder-header-is-present-new-content-control-origin-header-s-present- on-the-requested-resource-whe) – rckrd

答えて

0

サーバーがAccess-Control-Allow-Originヘッダーを送信していないため、ブラウザからリクエストが許可されていません。

ヘッダーを設定し、要求を許可します。

app.post('/', function (req, res) { 
    console.log(req.body); 
    res.header('Access-Control-Allow-Origin', 'http://neztorian.xyz:26'); 
    res.send("recieved"); 
}); 

もっとここで読む:CORS

関連する問題