[英]How to receive a nodejs data response from ajax
我目前正在學習express,ajax和nodejs。 因此,當前我正在嘗試使ajax和nodejs彼此交互。 我正在使用ajax將客戶端請求發送到nodejs服務器。 當前,我能夠在服務器中正確調用app.get
,即,在調用console.log(req.query);
之前,它可以正常工作console.log(req.query);
在服務器端。 但是,我無法接受服務器發送的數據。 客戶端代碼不會像我嘗試的那樣警告任何返回的數據。
這是我在客戶端的代碼。
function login(){
var obj = '{"username":"'+$('#username').val()+'", "password":"'+$('#password').val()+'"}';
$.ajax({
type:'GET',
dataType :'json',
data:{"username": $("#username").val(),
"password": $("#password").val()},
url:'http://localhost:10351/function',
success: function (data) {
alert("ajax callaback response:"+JSON.stringify(data));
}
})
這是我在服務器端的代碼。
var express = require('express');
var app = express();
var http = require("http");
var server = http.createServer();
var portNumber = 10351;
app.use(express.static('public'));
app.get('/function', function(req, res) {
console.log(req.query);
res.send(JSON.stringify(req.query));
});
app.listen(portNumber, function() {
console.log('Currently listening on port ' + portNumber);
});
有小費嗎?
我在以下鏈接中查看答案:
而且我想也許我可以改用response.end和response.setHeader嗎? 我不太確定我的問題是在客戶端還是在服務器端。
你不
(req.query)
獲得了一個字符串 你應該:
url:'http://localhost:10351/function?foo=bar
) 刪除stringify ex:
res.send(req.query)
alert("ajax callaback response:"+data);
response.end
如果你已經使用不需要res.send
方法,並response.setHeader
如果你想紀念這個內容為JSON將是有益的,所以你可以把一個Content-Type: application/json
標題,或使用res.json
為您完成這兩項操作(將json字符串化並為您添加正確的標頭)
您的端口在代碼中不匹配。 您說您的呼叫一直有效直到console.log(),如果端口不匹配,它甚至不會在服務器中輸入app.get()。 我認為您剛剛為客戶發布了其他代碼。
我建議您嘗試使用chrome擴展程序的postman,它對於發送和獲取ajax請求響應非常有幫助。 僅通過更改端口號即可使用您的代碼,我可以在郵遞員中獲得響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.