我正在通過使用快遞從我的服務器檢索數據。我有一個按鈕需要點擊後顯示名稱,但它似乎並沒有工作。我不斷收到一個錯誤,說「要求」沒有定義,當我點擊搜索按鈕,我得到一個錯誤信息:需要檢索數據使用快遞,我自己的網址和AJAX呼叫
的jquery.js:9631 GET http://localhost:10000/發送@的jquery.js:9631ajax @的jquery.js :9176displayTurtles @ serverFS.js:35dispatch @ jquery.js:4641elemData.handle @ jquery.js:4309 index.html:1 XMLHttpRequest無法加載http://localhost:10000/。請求的資源上沒有「Access-Control-Allow-Origin」標題。因此不允許原產地'null'訪問。該響應具有HTTP狀態代碼404.
我需要在HTML上顯示一個列表中的龜,以後也允許用戶使用POST方法添加新的龜對象。
server.js文件
var express = require('express');
var server = express();
server.get('/', function (req, res) {
var turtles = {
message: "success",
data: [
{
name: "Raphael",
favFood: "Pizza"
},
{
name: "Leonardo",
favFood: "Pizza"
},
{
name: "Donatello",
favFood: "Pizza"
},
{
name: "Michelangelo",
favFood: "Pizza"
}
]
};
res.send(turtles)
})
server.listen(10000, function() {
console.log('Example app listening on port 3000!')
})
serverFS.js文件
$(document).ready(function(){
var turtleList = $('<ol class="theList">')
$('.DTurtles').append(turtleList);
$(document).on('click', '#show', displayTurtles);
});
function displayTurtles(){
var emptyArray = [];
var myQueryUrl = "http://localhost:10000/" + turtleSearch;
$.ajax({url: myQueryUrl, method: 'GET'}).done(function(response){
var loopLength = response.data.length;
var name;
var food;
for(var x = 0; x < loopLength; x++) {
var emptyTurt = {};
name = response.data[x].name;
food = response.data[x].favFood;
emptyTurt.name = name;
emptyTurt.food = food;
emptyArray.push(emptyTurt);
}
console.log(emptyArray)
});
console.log(emptyArray)
}
HTML文件
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div class="form">
<form>
<label for="search-input">Type Something</label><br>
<input type="text" id="search-input"><br><br>
<input id="show" type="button" value="For Emergencies Only">
</form>
</div>
<div class="DTurtles">
</div>
<script src="https://code.jquery.com/jquery.js"></script>
<script type="text/javascript" src="serverFS.js"></script>
</body>
</html>
編輯:我是否需要具體在服務器上我的get函數.js文件?我讀了快遞的網站上,它說的路由參數做:
Route path: /users/:userId/books/:bookId
Request URL: http://localhost:3000/users/34/books/8989
req.params: { "userId": "34", "bookId": "8989" }
我確實運行了節點server.js和.listen函數,它向我展示了測試警報。但數據不會被檢索到並顯示在我的HTML –
@ H.Lee - 那麼你爲什麼將它包含在你的網頁中。刪除。正如我在我的回答中所說的,您也有同樣的原產地問題,可能是因爲您正在從文件系統加載網頁,然後嘗試訪問您的服務器。您需要從Web服務器加載網頁,然後您可以通過該網頁上的ajax訪問同一服務器。您需要爲網頁本身添加一個路由到您的Web服務器。 – jfriend00
我擺脫了底部的標籤。如何從y Web服務器加載網頁,併爲網頁添加路由到我的Web服務器 –