Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在express server中发出ajax get/post请求?_Javascript_Jquery_Ajax_Express - Fatal编程技术网

Javascript 如何在express server中发出ajax get/post请求?

Javascript 如何在express server中发出ajax get/post请求?,javascript,jquery,ajax,express,Javascript,Jquery,Ajax,Express,下面是我的express服务器。我试图在ajax中发出get请求,但结果失败了,尽管我在开始时需要jquery。它说除了使用jQueryAjax之外,$没有定义,我还可以使用什么来从RESTfulAPI url进行API调用 var express=require('express'); var requestHandler=require('./requestHandler'); var-app=express(); var path=require('path'); 使用(express.

下面是我的express服务器。我试图在ajax中发出get请求,但结果失败了,尽管我在开始时需要jquery。它说除了使用jQueryAjax之外,$没有定义,我还可以使用什么来从RESTfulAPI url进行API调用

var express=require('express');
var requestHandler=require('./requestHandler');
var-app=express();
var path=require('path');
使用(express.static(path.join(uu dirname,../client'));
get('/homepage',requestHandler.getData);
var port=process.env.port | 3000;
app.listen(端口);
console.log(“运行在以下位置的服务器:”http://localhost:“+港口);
//请求处理程序文件:
var express=需要(“express”);
变量url=”http://jsonplaceholder.typicode.com/";
module.exports.getData=函数(req,res){
$.ajax({
方法:“GET”,
url:url+“帖子”,
成功:功能(数据){
控制台日志(数据);
res.send(数据);
}
});
}
module.exports.getComments=函数(userId){
$.ajax({
方法:“GET”,
url:url+“/注释”,
成功:功能(数据){
控制台日志(数据);
}
});
}
更新 @有人说,express框架在节点中设置web服务器非常流行。可以使用不同的渲染引擎渲染视图并将信息传递给用户。这是来自Express网站的一个非常简单的示例,它侦听两个URL(/posts和/comments)


您需要了解以下内容:

  • expressjs
    是服务器端代码,因此不能像那样使用jquery-ajax
  • jQuery.ajax()
    只能在浏览器中加载页面时在视图中使用

  • 您需要使用一些视图引擎,如
    jade
    来创建模板,并使用路由器在浏览器中推送视图。当您在浏览器中拥有视图时,您可以引用脚本文件,该脚本文件可以包含ajax代码,以便发布文章和评论

    var express = require('express');
    var app = express();
    
    app.get('/posts', function (req, res) {
      res.send('Render posts!');
    });
    
    app.get('/comments', function (req, res) {
      res.send('Render comments');
    });
    
    var server = app.listen(3000, function () {
      var host = server.address().address;
      var port = server.address().port;
    
      console.log('Example app listening at http://%s:%s', host, port);
    });
    

    试试这样的方法:

    function() {
    
    
        // Simple POST request example (passing data) :
        $http.post("/createProject/"+ id +"", {
            projectTitle: pTitle,
            userID      : id
        }).
        success(function(data, status, headers, config) {
            // this callback will be called asynchronously
            // when the response is available
            $scope.getProjects();
            console.log("project created");
            console.log("this is the response data " + data);
        }).
        error(function(data, status, headers, config) {
            // called asynchronously if an error occurs
            // or server returns response with an error status.
        });
     };
    
    也请注意。您将从一个外部JavaScript文件调用它。在express服务器上,您将只有“路由”,从外部javascript文件可以对这些路由执行HTTP调用。

    var http=require('http');
    变量选项={
    主持人:“www.google.com”,
    路径:'/index.html'
    };
    var req=http.get(选项、函数(res){
    console.log('STATUS:'+res.statusCode);
    log('HEADERS:'+JSON.stringify(res.HEADERS));
    //将主体完全缓冲,以便作为一个整体进行处理。
    var bodyChunks=[];
    res.on('data',函数(块){
    //您可以在此处处理流式零件。。。
    推(块);
    }).on('end',function(){
    var body=Buffer.concat(bodyChunks);
    console.log('BODY:'+BODY);
    //…和/或在这里处理整个身体。
    })
    });
    请求开启('错误',功能(e){
    console.log('错误:'+e.message);
    
    });
    所以,如果我想从真实的url发出请求,我可以在express中使用什么样的语法?在节点中,您通常使用http或请求模块。请参阅“我的更新”。@Evers那么用户必须在浏览器中键入什么url才能按照您的建议从中获得响应。在我看来,路径表明了它必须执行的操作,如果你有
    /home
    ,它使用一些视图引擎返回home视图。啊,现在我感到困惑了。看看Express,Express是一个web框架。我会用一个例子来更新我的答案。可能是重复的否。这不是我正在寻找的答案,它解决了我的一个get请求问题;但是,我不知道为什么我不能通过get请求从这个链接获取数据,它适用于http.get()中的/posts,但不适用于注释,如果我在jquery ajax的客户机视图中这样做,它也可以工作…:/你能解释一下吗?可能有几个原因,CORS,不正确的标题。。。你在哪个服务器上发帖?它是您自己的本地主机吗?您需要检查响应,以查看服务器是否响应错误。是。这是我的本地主机,不知道为什么它会给我404响应:/首先检查您的快速路线名称。在路由函数中输入console.log以确保它能够到达路由,然后检查以确保查询工作正常。只需确认它是路由。谢谢:D