Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 如何将数据从node.js检索到Ajax?_Javascript_Jquery_Node.js_Ajax - Fatal编程技术网

Javascript 如何将数据从node.js检索到Ajax?

Javascript 如何将数据从node.js检索到Ajax?,javascript,jquery,node.js,ajax,Javascript,Jquery,Node.js,Ajax,我正在尝试学习从Ajax向node.js发送/接收数据。我能够从ajax发送数据,但无法接收。无法解决这个问题。如果有人能解释我错在哪里,那就太好了 阿贾克斯 node.js 我在jQuery Ajax文档中看到了这条语句: 弃用通知:jqXHR.success()、jqXHR.error()和 jqXHR.complete()回调从jQuery 3.0开始被删除。你可以用 改为jqXHR.done()、jqXHR.fail()和jqXHR.always() 我相信您将需要更改类似于上述文档中提

我正在尝试学习从Ajax向node.js发送/接收数据。我能够从ajax发送数据,但无法接收。无法解决这个问题。如果有人能解释我错在哪里,那就太好了

阿贾克斯

node.js


我在jQuery Ajax文档中看到了这条语句:

弃用通知:jqXHR.success()、jqXHR.error()和 jqXHR.complete()回调从jQuery 3.0开始被删除。你可以用 改为jqXHR.done()、jqXHR.fail()和jqXHR.always()

我相信您将需要更改类似于上述文档中提到的代码

  • 您是否检查了要发布以返回响应的服务器/api(使用postman)
  • 你检查过请求的标题了吗。您可能需要添加授权头(公共API的常见做法)
  • 您是否在请求中附加了客户端id、应用程序id或api密钥
  • 您是否验证了您的请求(基本上是第2/3点)
  • 2和3应该会返回一个响应,在这两种情况下,我都会使用邮递员进行检查。如果邮递员至少应该回复。检查标题和http状态标题。如果您得到的是200响应,并且没有返回任何内容,则可能存在路由或服务器配置问题

    Ajax示例 $(文档).on('submit','searchdata',函数(e){ e、 预防默认值()


    你在Ajax错误处理程序中有没有发现任何错误?没有。我没有发现任何错误。你能在“JSON.stringify”之前的成功处理程序中添加一个日志,看看它是否在日志记录中吗?嘿,我刚刚试过,它不起作用,你使用的是什么jQuery版本?我刚刚试过,但它没有给我任何提示。当我在数据类型中设置文本。因此,当从服务器发送到.ajax时,我没有正确格式化JSON?感谢您的响应。事实上,我已经解决了这个问题。我必须正确格式化JSON。另外,您对node.js使用什么?expressjs?如果是express,您的响应应该是response.JSON(myData)我使用的是node.js,我从服务器发送的JSON数据有问题。location.pathname是什么?即实际的URL不使用任何框架,现在我能够成功地发送数据ie JSON数组,但循环没有在ajax done函数中执行这是框架可以让它变得非常简单的地方-express可以只要是
    route。('/path/',函数(req,res,next){res.json(myData})
    $(document).on('submit', '#searchdata', function (e) {
    e.preventDefault();
    var formData = $(this).serialize();
    $.ajax({
     url: location.pathname,
     method: 'POST',
     type: 'POST',
     data: formData,
     processData: false,
     dataType: 'json',
     contentType: 'application/json; charset=utf-8',
     success: function (data) {
                       var ret = JSON.stringify(data);
                       console.log('Success: '+JSON.stringify(data))
                   },
                   error: function (xhr, status, error) {
                       console.log('Error: ' + JSON.stringify(error));
                   },
      });
      });
    
        var myData = '';
        request.on('data', function (data) {
            myData += data.toString();
        });
     response.writeHead(200, {
                 'Content-Type': 'text/json',
                 'Access-Control-Allow-Origin' : '*'});
          response.end(myData);
          });
    
    // Assign handlers immediately after making the request,
    // and remember the jqXHR object for this request
    var jqxhr = $.ajax( "example.php" )
      .done(function() {
        alert( "success" );
      })
      .fail(function() {
        alert( "error" );
      })
      .always(function() {
        alert( "complete" );
      });
    
    //Get form by id
    var $form = #("#form_id");
    
    //Form data
    var formData = new formData($form);
    
    $.ajax({
        url: 'http://localhost:300/edit/11', //path to api
        method: 'POST',    //Method to use (GET by default)
        data: formData,    //The data to be posted
        dataType: 'json',   //Expected reponse format
    }).done(function(res){ 
        //Results here can contain an error - this is common for custom error types
        //Test for custom error assuming in the format res.error
        if( typeof res.error == 'undefined'){
            console.log(res)
        }else{
            //You have an error
        }
    }).fail(function(err){
        console.log(err)
    })