[英]Convert Jquery to javascript(AJAX)
我怎樣才能得到相同的結果,而不是 jquery 使用香草 javascript;
使用 ajax 和 jquery 我設法將值從輸入發送到節點 js。
**/script/main.js**
///Search ajax call
let searchResults = document.getElementById('search_in_platform_functionality');
if(searchResults){
searchResults.addEventListener('keyup',(dataSearch)=>{
let searchValue = dataSearch.target.value.trim();
searchRes(searchValue);
})
}
function searchRes(searchTerm){
$.get(url,{search:searchTerm},(results)=>{
console.log(results)
});
}
/controller.js
router.get("/", async (req, res)=>{
var searchObject = req.query;
console.log(searchObject)
if(req.query.search !== undefined){
searchObject = {
$or:[
{firstName:{$regex: req.query.search,$options:"i"}},
{lastName:{$regex: req.query.search,$options:"i"}},
{username:{$regex: req.query.search,$options:"i"}}
]
}
}
await User.find(searchObject).then(results =>{
res.status(200).send(results);
}).catch(error =>{
console.log(error);
res.sendStatus(400);
})
});
如何在節點服務器中獲得相同的結果排序參數,但使用 javascript 焦點 vanilla 沒有 jquery。
let search = new XMLHttpRequest();
search.open('GET', url,{search:searchTerm},(results)=>{
console.log(results)
});
search.send();
我嘗試了類似的方法,但它不起作用。
這是我對Fetch API的看法,
fetch(`url?search=${searchTerm}`).then(response => response.json()).then(results => {
console.log(results);
}).catch(e => console.log(e));
您正在發送一個GET
方法,因此您需要在 URL 查詢字符串中傳遞參數
.then
回調在Promise
完成時運行。 您可以擁有任意數量的.then()
回調,但前兩個對於您訪問返回數據是必需的。 MDN Promise.prototype.then()
然后在第一個回調中傳遞 fetch 的主體,然后使用其方法將結果轉換為 object 或數組或文本,您可以在代碼中使用 .json( .json()
或.text()
或.formData()
或.blob()
或.arrayBuffer()
在這里閱讀更多
最后一個.then
回調是傳遞結果供您操作它的地方。
您可以傳遞.catch
回調,以防出現錯誤並且需要記錄它。 MDN Promise.prototype.catch
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.