【发布时间】:2017-10-18 10:02:59
【问题描述】:
尝试做我的第一个 nodejs 项目。
我已经使用 Nodejs 构建了一个基于 Web 的服务器,它运行在 localhost:3000/home。
然后我使用 Cordova 构建了一个 android 应用程序并在模拟器上运行。我尝试将查询发送到服务器并让搜索结果返回以显示在应用程序上。但是,我在使用 ajax 时遇到了问题,我尝试了很多 url 的表达式,结果都是:找不到文件。
项目层次结构:
homecontroller.js 中的 post 函数(使用 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});
在应用程序中: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函数有问题。由于网络服务器运行良好,请提出一个解决方案来达到目的。
【问题讨论】:
-
那么您的服务器也托管在您的移动设备上?
-
不,我只是在设备网络浏览器上尝试过,发现它使用 10.0.2.2 而不是 localhost。只是想提供更多关于它的信息。该应用实际上只需要从服务器检索数据。
标签: android jquery node.js ajax cordova