2016-11-16 9 views
1

私は考えることのできるAJAX Postリクエストのすべてのバリエーションを試しましたが、私はまだExpressアプリケーションで正しいリクエストを受けていません。Bug with JSON JQuery Ajax POST

var json = {} 
var skus = [1,2,3] 
json.data = { 
    "test":"test", 
    "aoeu":"aoeu" 
} 
$.post('/jet/api/putProduct',json) 

私はこのコードを単純化しており、まだ適切に処理されていません。

次のように、req.bodyのExpressサーバーに表示されます。

{data[test]: "test", data[aoeu]: "aoeu"} 

私はjson["data"] = ...と何も試してみませんでした。 私は$.ajax()を使用して試しましたが、何もありませんでした。 私はオブジェクト/アレイを構築するためのさまざまな方法を試みましたが、何もしませんでした。

私は深く掘る場所を知りませんが、この機能はかなり基本的なようだapp.use(bodyParser.json())

を使用していますので、私はハングアップがどこにあるかわかりません。

誰でも正しい方向に私をデバッグすることができますか?それは特急ですか?私はこれですでに長い時間を費やしてきました。あなたが取得する必要

あなたはそれが少し簡単にするために、次んでした
+0

あなたは 'bodyParser.json()'が動作しないようにjsonとして送信しています。 jQueryのajaxのデフォルトのcontentTypeは 'application/x-www-form-urlencoded'です – charlietfl

+0

より多くの洞察をいただきありがとうございます。私はcontentTypeがapplication/jsonに設定された$ .ajax()を以下のように試していました。問題は 'app.use(bodyParser.urlencoded({extended:false})) 'でした。'私は真になりました。ホウ – jheyer159

+0

@TechBreakはjsonへのデータを正しく解析しません – charlietfl

答えて

0

var json = { 
    "test":"test", 
    "aoeu":"aoeu" 
} 

と、次のようにAjaxのポストを送って、

$.ajax({ 
    url: '/jet/api/putProduct', 
    type: "POST", 
    data: json, 
    contentType: "application/json" 
}); 

のでreq.bodyでExpressサーバ上の通りです続く。

{ 
    "test":"test", 
    "aoeu":"aoeu" 
} 
+0

データを文字列化せずにcontentTypeを設定することはできません – charlietfl