问题是jQuery没有收到服务器的响应,我无法弄清楚原因。这是我的设置,Windows 7 64位:
$('#button').click(function(){
var string= $('#string').val();
$.get('http://localhost:3000',
{"input":string},
function(data){
alert(data);
$('#feedback').text(data);
});
})
099.html:
<doctype html>
<html lang="en">
<head> <!-- charset title style -->
<meta charset="uft-8"/>
<title>jQuery 099</title>
</head>
<body><!-- tables, div's bad, html 5 is better: -->
<input type="text" id="string" value=""/>
<input type="button" id="button" value="ajax"/>
<br/>
<div id="feedback"></div>
</body>
<script type="text/javascript" src="./js/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="./js/ext.js"></script>
</html>
server.js:
var express = require('express');
var app = express();
app.get('/', function(req, res){
console.log("got");
console.log(req.query.input);
var content = req.query.input;
res.send(content);
});
app.listen(3000);
我使用命令行运行节点0.10 C:\ dev \ nodejs \ 0.10 \ servers \ stackoverflow&gt; node server.js
在我的FF浏览器中输入
http://localhost:3000/?input=hi
我得到一个包含hi的空白屏幕, 这很好。此外,node.js打印得到,然后在命令行打印
我从记事本++&gt;运行099.html运行&gt;铬&gt;所以它运行在一个完全不同的驱动器上,但肯定它不需要在服务器中,对吧?当我在文本字段中键入XYZ并单击ajax按钮时,节点在控制台XYZ上响应,这很好:请求是由节点发现的,因此它会发送响应,但我在html中看不到响应。 预期的行为是一个警报,我的div填入html并显示XYZ。
我错过了什么明显的观点?
我现在已经坚持了2个小时并且因为我不知道jquery而无法找到类似的问题。
ps 099来自newboston youtube教程,jquery来自jquery站点。我不知道快递版本,这是一个相当新的版本。
ps2:jquery $ .get()api过于模糊:http://api.jquery.com/jquery.get/表示:“如果请求成功,则执行回调函数。”好吧,我可以得出结论,请求成功,因为nodejs控制台对它做出了反应,如果是,为什么回调函数不执行。
ps3:最后一个参数是dataType,也许节点以$ .get没想到的方式响应?任何数据类型的建议?
编辑:昨天我把我的tomcat掸掉了,把上面的文件放进去,jquery像魅力一样运行。
我是多么愚蠢,假设磁盘上的文件可以通过http与服务器进行通信,我在想什么。 ajax的本质是“侦听异步响应”(例如http://msdn.microsoft.com/en-us/magazine/cc163479.aspx),因此文件需要驻留在某种显然建立某种IP地址的东西上。很抱歉污染互联网,案件已关闭。