如何使用ajax帖子到本地服务器?

时间:2017-05-18 14:17:14

标签: android jquery node.js ajax cordova

尝试做我的第一个nodejs项目。

我使用Nodejs构建了一个基于Web的服务器,Nodejs运行在localhost:3000 / home。

然后我使用cordova构建了一个Android应用程序并在模拟器上运行。我尝试将查询发送到服务器并将搜索结果返回以显示在应用程序上。但是,我在使用ajax时遇到了问题,我尝试了很多url的表达式,一切都出来了:找不到文件。

项目层次结构: enter image description here

在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。网络服务器运行良好。

1 个答案:

答案 0 :(得分:0)

Localhost被设备识别为自身,这意味着如果您在计算机上托管服务器,并且在计算机上与该服务器通信,则可以使用localhost。

但是,如果您在不同的设备上运行您的网站,让我们说您的手机,localhost被该设备解释为自己,这意味着它显然无法与您的计算机通信。

现在为了让两个设备找到彼此,他们需要知道每个人的名字,即IP地址。如果两个设备位于同一网络(例如,您的本地WiFi),则可以使用其本地IP作为它们之间进行通信的方式。

通过打开命令提示符并在Windows上键入ipconfig来获取计算机的本地IP,或者如果您在Linux上,则键入ip addr。使用您找到的IP(ipv4)作为发布的地址(基本上用您找到的IP替换localhost)。然后再试一次。