3

次のようなIDの配列があります。

var arr = [1, 23, 6];

この配列をサーバーに送信し、解析して、マングース データベースから ID を削除する必要があります。私のバックエンドには、nodejs Express を使用しています。jQueryを使用して配列を送信する方法と、サーバーで配列を解析する方法についてアドバイスが必要です。

4

2 に答える 2

8

基本的には@udiduの良い答えに対するコメントですが、マークダウン形式が必要なので、答えとして投稿します。ここにいくつかのマイナーな改善の提案があります:

  • javascript側のURL「/deleteIds」からのパス以外はすべて省略して、どのように提供されても機能するようにします。

  • オブジェクトラッパーなしで配列をJSON文字列として送信できます

    $.ajax({
        url: '/deleteIds',
        type: 'DELETE',
        data: JSON.stringify([1, 2, 3]),
        contentType: "application/json",
        processData: false,
        success: function(data){
            console.log(data);
        }
    });
    
  • サーバーでは、アレイはreq.body

  • RESTの規則に従って、これはHTTPメソッドを使用する必要があります(jqueryを変更しました。また、代わりにDELETEエクスプレスコードを変更する必要があります)。app.delapp.post

于 2012-08-19T13:40:21.313 に答える
4

わかりました、次の指示に従ってください。

まず、ノード サーバーを作成します。Express モジュールを使用して HTTP サーバーを定義しています。

var fs = require('fs'),
    express = require('express'),
    app = express();


app.listen(8080);

app.use(express.bodyParser());

app.get('/', function(req, res){
    var html = fs.readFileSync('index.html');
    res.header("Content-Type", "text/html");
    res.send(html);
});

app.post('/deleteIds', function(req, res){
    console.log(req.body.arr[0]);
    res.json({ success: true });
});

サーバーの「/」リクエストは、jQuery Ajax リクエストを作成する HTML ページを返します。HTML ファイルの内容は次のとおりです。

<html>
<head>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
    <script type="text/javascript">

        $.ajax({
            url: 'http://localhost:8080/deleteIds',
            type: 'POST',
            data: {
                arr: [ 1, 2, 3]
            },
            success: function(data){
                console.log(data);
            }
        });

    </script>

</head>
<body>
</body>
</html>

ご覧のとおり、html ファイル内の Ajax リクエストは、配列をデータとする POST リクエストとして送信され/deleteIdsます。サーバー内のエクスプレス パス POST 関数はそれをリッスンし、 を使用して配列を取得します。これを使用せずreq.body.arrに を使用していることに注意してください。app.use(express.bodyParser());POST リクエストから本文コンテンツを取得することはできません。

これで終わりです.これが Express を使用した Node + Ajax リクエストの理解に役立つことを願ってarrいます。

于 2012-08-19T10:51:26.887 に答える