2016-10-10 12 views
-1

私は、電話や別のデスクトップが同じネットワーク上で実行されているかどうかにかかわらず、クライアント側でデータを入力できるようにするアプリを作っています。リクエストボディNode.jsサーバーを読む

私のリクエストに答えるNode.jsサーバーがありますが、サーバー側では実際には読み取れません。

これは、サーバー

var http = require("http"); 

var parseString = require('xml2js').parseString; 

var express = require('express') 
var app = express(); 
var port = process.env.PORT || 8081; 


var request = require('request'); 


app.use(function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    next(); 
}); 


// start the server 
app.listen(port); 
console.log('Server started! At http://localhost:' + port); 


// routes will go here 
app.use('/static', express.static('.')); 

var bodyParser = require('body-parser'); 
app.use('/browse', bodyParser.json()); // support json encoded bodies 
app.use('/browse', bodyParser.urlencoded({ extended: true })); // support encoded bodies 


app.get('/', function(req, res, next) { 
    // Handle the get for this route 
}); 

app.post('/', function(req, res, next) { 
// Handle the post for this route 
}); 


// POST http://localhost:8081/browse 
app.get('/browse', function(req, res) { 
    var browseRequest = req.body.browseRequest; 
    console.dir("browseRequest: "); 
    console.dir(browseRequest); 

    res.send(JSON.stringify("response")); 

}); 

(私はここに冗長なものを持っていますか?)

ための私のコードであり、これは私が私のHTMLページの

// Create the XHR object. 
    function createCORSRequest(method, url) { 

     var xhr = new XMLHttpRequest(); 
     if ("withCredentials" in xhr) { 
     // XHR for Chrome/Firefox/Opera/Safari. 
     xhr.open(method, url, true); 
     } else if (typeof XDomainRequest != "undefined") { 
     // XDomainRequest for IE. 
     xhr = new XDomainRequest(); 
     xhr.open(method, url); 
     } else { 
     // CORS not supported. 
     xhr = null; 
     } 
     return xhr; 
    } 


    // Make the actual CORS request. 
    function makeCorsRequest() { 
     // This is a sample server that supports CORS. 
     var url = "http://192.168.0.100:8081/browse" 
     var xhr = createCORSRequest('GET', url); 
     if (!xhr) { 
     alert('CORS not supported'); 
     return; 
     } 

     //xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); 

      var req = { "browseRequest": { 
       "name": "Aaron", 
       "type": "Consumer", 
       "age": 21 

      }}; 
      xhr.send(JSON.stringify(req)); 

    } 

を使用しています一部であります私はクライアント上のサーバーから送信された文字列を取得しますが、req.bodyが空になるので、サーバーのブラウズ要求にアクセスできません。

私はここで何が欠けていますか? ありがとう!

+0

送信した内容をサーバーに伝えられませんでした。 (コメントアウトされた部分) –

+0

CORSエラーが発生していたので、前にコメントしました。 コメントを外しても、私はまだ体を空にしています。 チップはありますか? – seugnimod

答えて

-1

GETパラメータは(主に)無身体性である。 (Read this

あなたはreq.paramsまたはreq.query

でパラメータを取得することができますしかし、あなたのAJAX呼び出しにあなたのデータをqueryStringする必要があります。

+0

GETリクエストを使用してJSON本体を送信することはできますが、body-parserはこれをサポートしています。 –

+0

json bodyでajaxを呼び出す作業例を送ってもらえますか?ブラウザがGETリクエストでボディを渡すことを許可していないと思います...(私はCURLで可能です) –

+0

あなたのご意見ありがとうスティーブ@Kevinの例も見たいと思います。 – seugnimod

関連する問題