2017-01-18 23 views
0

mithril.jsを使用してノードのバックエンドと接続しています。私はAJAXリクエストで追加したドキュメントに従っていましたが、他の場所ではミスリルのドキュメントはほとんどありませんでした。とにかくAJAXエラー:400 Bad Request

、エラー:

mithril.js:2130 POST http://localhost:3000/api/stocks 400 (Bad Request) 
ta @ mithril.js:2130 
ua @ mithril.js:2138 
k.request @ mithril.js:2227 
vm.add @ app.js:24 
(anonymous) @ mithril.js:1246 
mithril.js:2197 Uncaught SyntaxError: Unexpected token < in JSON at position 0 
    at parse (<anonymous>) 
    at Object.a.onload.a.onerror (mithril.js:2197) 
    at XMLHttpRequest.d.onreadystatechange (mithril.js:2102) 
a.onload.a.onerror @ mithril.js:2197 
d.onreadystatechange @ mithril.js:2102 

mithril.js

vm.add = function() { 
      var data = vm.symbol(); 
      if (vm.symbol()) { 
       m.request({method: 'POST', 
          url: '/api/stocks', 
          data: data, 
          unwrapSuccess: function(response) { 
           return response.data; 
          }, 
          unwrapError: function(response) { 
           return console.log(response.error); 
           } 
          }); 
       vm.list.push(new app.Stock({symbol: vm.symbol()})); 
       vm.symbol(""); 
      } 
     }; 

ルート/ index.js(ノード)

router.post('/api/stocks', function(req, res) { 
    Stocks.create({ 
    stock: req.body.text, //stocks 
    date_added: new Date(), //Date 
    }, function (err, stocks) { 
    if (err) { 
     res.send(err); 
    } else { 
     Stocks.find(function(err, stocks) { 
     if (err) { 
      res.send(err); 
     } else { 
      res.json(stocks); 
     } 
     }); 
    }; 
    }); 
}); 

任意のアイデア?

ありがとうございます。

+0

ここにペイロードを掲載できますか? –

答えて

1

この問題は、MithrilがデータがJSONであると自動的に判断するために発生しました。私はプレーンテキストを送ろうとしていました。ミスリルには、これを「デシリアライズ」と呼ぶ方法があります。

Deserializeが機能しないため、私は再び見て、JSONが存在しないという事実が気に入らなかったので、データをJSONに変換してからPOST要求が正常に機能しました。

関連する問題