尝试做我的第一个nodejs项目。
我使用Nodejs构建了一个基于Web的服务器,Nodejs运行在localhost:3000 / home。
然后我使用cordova构建了一个Android应用程序并在模拟器上运行。我尝试将查询发送到服务器并将搜索结果返回以显示在应用程序上。但是,我在使用ajax时遇到了问题,我尝试了很多url的表达式,一切都出来了:找不到文件。
在homecontroller.js中发布功能(使用express和ejs)
app.post('/home', urlencodedParser, function(req, res) {
var rsults = [];
var pname = req.body.player_name;
var tname = req.body.team_name;
results[] = searchdatabase(pname,tname);
res.render('home', {results: results});
app中的:index.html
<form>
<input type="text" class="form-control" id="player_name"name="player_name">
<input type="text" class="form-control" id="team_name" name="team_name">
<button type="submit" class="btn btn-info" onclick="search">Search</button>
<script>
function search(){
var pname = $("[name='player_name']").val();
var tname = $("[name='team_name']").val();
jQuery.ajax({
type: "POST",
url: "http://localhost:3000/home",
data: '{"pname": "pname", "tname": "tname"}',
dataType: "json",
cache: false,
sucess: function(response)
{alert("sent");}
})
}
</script>
</form>
此代码很差。也许我在服务器中编写的内容无法与应用程序中的ajax请求相对应,或者我在使用ajax函数时出错了。请为我提供正确的演示文稿以达到目的。
PS。网络服务器运行良好。
答案 0 :(得分:0)
Localhost被设备识别为自身,这意味着如果您在计算机上托管服务器,并且在计算机上与该服务器通信,则可以使用localhost。
但是,如果您在不同的设备上运行您的网站,让我们说您的手机,localhost被该设备解释为自己,这意味着它显然无法与您的计算机通信。
现在为了让两个设备找到彼此,他们需要知道每个人的名字,即IP地址。如果两个设备位于同一网络(例如,您的本地WiFi),则可以使用其本地IP作为它们之间进行通信的方式。
通过打开命令提示符并在Windows上键入ipconfig来获取计算机的本地IP,或者如果您在Linux上,则键入ip addr。使用您找到的IP(ipv4)作为发布的地址(基本上用您找到的IP替换localhost
)。然后再试一次。