2017-02-10 76 views
-1

我嘗試將該值發送到我的服務器,但如果我嘗試,我的控制檯顯示我的錯誤:的NodeJS - 用AJAX將數據發送到服務器

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

在這種情況下,我嘗試與本地主機:3000 /服務器,並沒有工作。我的端口是3000 –

+0

從本地主機中刪除服務器部分。您不會調用'js'文件,而是調用路由'/' –

+0

我將使用新代碼進行編輯。同樣的錯誤:'不能POST /' –