2017-02-10 34 views
-1

にAjaxでデータを送信し、私は自分のサーバーに値を送信してみてください、私はしようとすると、私のコンソールは私にエラーを示しています。Nodejs - サーバー

Cannot POST/

私は他の例を見てみてください、と私はこれを試してくださいコード:

マイindex.html

function sendData() { 
    var latestResponse = Api.getResponsePayload(); 
    var context = latestResponse.context; 
    var mail = context.email; // I can see the data of these variables perfectly on the console 


$.ajax({ 
    type: "POST", 
    url: "http://localhost:3000/", 
    crossDomain:true, 
    dataType: "json", 
    data:JSON.stringify({email: mail}) 
}).done(function (data) { 
     alert("ajax callback response:"+JSON.stringify(data)); 
    }) 
} 

マイserver.js

'use strict'; 

var server = require('./app'); 
var port = process.env.PORT || process.env.VCAP_APP_PORT || 3000; 

server.on('request', request); 

server.listen(port, function() { 
    console.log('Server on port: %d', port); 
}); 

function request(request, response) { 
    var store = ''; 

    request.on('data', function(data) 
    { 
     store += data; 
    }); 
    request.on('end', function() 
    { console.log(store); 
     response.setHeader("Content-Type", "text/json"); 
     response.setHeader("Access-Control-Allow-Origin", "*"); 
     response.end(store) 
    }); 
} 

マイリポジトリ:

FolderRepository 
    public 
    - js folder 
    - img folder 
    - css folder 
    - index.ejs 
    server.js 
    app.js 

答えて

1

サーバーは、他のポートで実行されているので。これは

var port = process.env.PORT || process.env.VCAP_APP_PORT || 3000;

とAjaxリクエストであなたがURLにhttp://localhost: + your port

を投稿する必要があり、要求を受信したときにも、すべての時間は、あなたの要求はdataに新しいイベントハンドラをアタッチしますあなたのポートです10件のイベントが添付された後、メモリの漏れに関する警告メッセージが表示されます。

このコードは機能します。主な違いは、http.createServer()と呼び、app.jsから取得することです。 app.jsを参照して、サーバーが適切に作成されているかどうかを確認します。

サーバーが正しく作成されているかどうかを確認してください。

var http = require('http'); 
var port = 3000; 

var proxy = http.createServer(); 

proxy.listen(port); 

proxy.on('request', request); 

function request(request, response) { 
    var store = ''; 

    request.on('data', function (data) { 
     store += data; 
    }); 
    request.on('end', function() { 
     console.log(store); 
     response.setHeader("Content-Type", "text/json"); 
     response.setHeader("Access-Control-Allow-Origin", "*"); 
     response.end(store) 
    }); 
} 
+0

私はlocalhost:3000/serverで試してみると、うまくいきません。私のポートは3000 –

+0

です。ローカルホストからサーバー部分を削除してください。あなたは 'js'ファイルを呼び出さず、'/' –

+0

というルートに新しいコードで編集します。同じエラー: 'POSTできません/ ' –

関連する問題