2017-05-04 27 views
0

私はこの問題をstackoverflowで検索しましたが、私の問題を解決する答えが見つかりませんでした。jquery ajax投稿が未定義

これは私のnode.jsブックの偶数サンプルコードです。私はなぜこれが働いていないのか分からず、私はこの本の著者を訴えたいと思う。彼は私に多くのストレスを与えました。私はクロームのコンソールに#NAMEと#priceに入れて正しいデータを見ることができるのindex.html

$('#post').click(function(){ 
    console.log($('#name').val()); 
    console.log($('#price').val()); 
    $.ajax({ 
     url:'/products', 
     type:'post', 
     dataType : 'text', 
     data : { 
      name : $('#name').val(), 
      price : $('#price').val() 
     }, 
     success : function(data){ 
      $('#output').val(data); 
     } 
    }); 
}); 

でserver.js

app.post('/products', function (request, response){ 

console.log(request.params); 
var name = request.params.name; 
var price = request.params.price; 
var item = { 
    name : name, 
    price : price 
}; 

items.push(item); 

response.send({ 
    message : 'Data pushed', 
    data : item 
    }); 
}); 

2で

1]コード​​]コードconsole.logによるbrowser。しかし、server.jsのデータはconsole.log(request.params)で見ることができません。 console.log(request.params)、console.log(request.params.id)、console.log(reqeust.params.price)はすべて「undefined」を返します なぜそれは未定義に戻っていますか? インターネットで検索したことはたくさんありましたが、何も解決しませんでした。どうしたの?

+0

、私はプッシュの応答を見ることができます。 「データがプッシュされました」、{} – HyeonWoo

+0

プッシュは機能していますが、データの送信に問題があると考えています – HyeonWoo

答えて

0

サーバーファイルにExpessを使用しましたか?あなたがそうのようなdataType : 'json'を使用し、サーバーからjsonを送信する

var app = express(); 
app.use(express.bodyParser()); 

それとも

サーバーで
var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); // for parsing application/json 
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded 

あなたがrequest.body代わりのようなrequest.paramsを使用する必要がJS、

var name = request.body.name; 
var price = request.body.price; 

$.ajax({ 
    url:'/products', 
    type:'post', 
    dataType : 'json', // use json instead of text 
    data : { 
     name : $('#name').val(), 
     price : $('#price').val() 
    }, 
    success : function(data){ 
     console.log(data);// for name use data.data.name 
     //$('#output').val(data); 
    } 
}); 
index.htmlの
+0

私はあなたの答えを見て試しましたが、 console.log(request.params) – HyeonWoo

+0

とはい、全体のコードの上側にvarアイテムがありますが、質問を書くときにスキップしました – HyeonWoo

+0

私はちょうどあなたの更新された答えを試しました、そして、私はTypeErrorを持っています: undefined – HyeonWoo