2012-09-19 52 views
1

POST響應也許是簡單的東西,但下面的代碼無法正常工作時,expressjs服務器接收請求和數據,但jQuery的Ajax調用沒有收到來自服務器的響應expressjs不工作

這是服務器代碼

app.get('/', function(req, res){ 
    console.log('request for /'); 
    res.send('hello there!');  
}); 

這是jQuery的請求

$.ajax({ 
    type: 'GET', 
    url: 'http://localhost:3000/', 
    success: function(data) { 
     alert(data); 
    } 
    }); 

這是expressjs應用配置

app.configure(function(){ 
    app.set('port', /*process.env.PORT ||*/ 3000); 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.favicon()); 
    app.use(express.logger('dev')); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(app.router); 
    app.use(express.static(path.join(__dirname, 'public'))); 
}); 

編輯:拿出Json的東西,反正

+0

那你的廣泛使用'JSON.stringify()'?這個方法將從本地Javascript對象中創建一個字符串,我只能在服務器端看到這種方法的好處,因爲客戶端中的「數據」已經是一個字符串了。應該是'JSON.parse()' – devnull69

+0

編輯,問題是存在的在沒有JSON操作的情況下執行 –

+0

您如何試圖將ajax調用到您的快速應用程序(通過curl,瀏覽器開發工具等)?我只是想知道你的JavaScript代碼正在執行,因爲GET請求只返回「你好」,而不是任何JavaScript。我認爲這可能是一個跨域問題,但這只是一個懷疑:) –

回答

2

的解決辦法是允許跨域頭

 res.header("Access-Control-Allow-Origin", "*"); 
     res.header("Access-Control-Allow-Headers", "X-Requested-With"); 
0

問題存在的問題是,你並沒有結束,如下服務器代碼的連接。在app.get( '/',...

res.end('hello there'); 

注意,而不是發送。

+0

res.send也可以,你不需要使用res.end –