【发布时间】:2016-11-26 07:13:58
【问题描述】:
我正在使用 express 从我的服务器检索数据。我有一个按钮需要在单击后显示名称,但它似乎不起作用。我不断收到一条错误消息,提示未定义“需要”,当我单击搜索按钮时,我收到一条错误消息:
jquery.js:9631 GET http://localhost:10000/send @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”标头。因此,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>
编辑:我需要具体说明 server.js 文件上的 get 函数吗?我在快递网站上读到,它说路由参数是这样的:
Route path: /users/:userId/books/:bookId
Request URL: http://localhost:3000/users/34/books/8989
req.params: { "userId": "34", "bookId": "8989" }
【问题讨论】:
标签: javascript ajax node.js express