[英]How to pass ajax post data to nodejs server?
因此,我正在進行API調用,並且該調用中的對象之一是唯一ID。 我正在嘗試使用Ajax將ID對象傳遞回服務器端。 沒用 我究竟做錯了什么?
這是我的客戶端代碼,首先我遍歷一個javascript對象:
<% apiResultsdata['items'].forEach(function(items) { %>
<% let ID = items['id'] %>
<% let volumeInfo = items['volumeInfo'] %>
<% let author = volumeInfo['authors'] %>
<% let title = volumeInfo['title'] %>
<% let image = null %>
<% if(!(volumeInfo['imageLinks'] === undefined)) { %>
<% image = volumeInfo['imageLinks']['smallThumbnail'] %>
<% } %>
單擊鏈接后,我需要將ID傳遞回nodejs:
<div class="col">
<div class="card-block px-2">
<a href="/bookDetails"><h5 class="card-title"><%= title %></h5></a>
<script type="text/javascript">
$('a').click(function() {
$.ajax({
type: 'post',
data: {'ID':'<%= ID %>'},
url: 'localhost:3000/bookDetails',
success: function(data){
console.log('success');
}
});
});
</script>
在我提交的數據中,我將ID作為ejs對象傳遞,因為這是我使用的模板語言。 不確定是否正確。
這是服務器上的發布路線:
router.post('/bookDetails', (req, res) => {
let ID = req.query.ID;
console.log('ID: ' + ID);
});
您需要先設置contentType
和JSON.stringify
對象,然后JSON.stringify
數據字段。 ( 檢查此線程 )
$.ajax({
type: 'post',
contentType: "application/json; charset=UTF-8",
data: JSON.stringify({ ID: '<%= ID %>' }),
url: 'localhost:3000/bookDetails',
success: function(data) {
console.log('success');
}
});
在服務器端使用json-parser中間件總是一個好主意
const bodyParser = require('body-parser');
app.use(bodyParser.json());
然后,您可以獲取包含ID
參數的請求正文,如下所示
router.post('/bookDetails', (req, res) => {
let ID = req.body.ID;
console.log('ID: ' + ID);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.