Как получить данные из node.js в Ajax? - PullRequest
1 голос
/ 06 апреля 2019

Я пытаюсь научиться отправлять / получать данные из Ajax на node.js.Я могу отправить данные из ajax, но не могу получить.Не удалось решить проблему.Было бы замечательно, если бы кто-то мог объяснить, где я ошибаюсь.

Ajax

$(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));
               },
  });
  });

node.js

    var myData = '';
    request.on('data', function (data) {
        myData += data.toString();
    });
 response.writeHead(200, {
             'Content-Type': 'text/json',
             'Access-Control-Allow-Origin' : '*'});
      response.end(myData);
      });

Ответы [ 2 ]

1 голос
/ 06 апреля 2019

Я вижу это утверждение в документации jQuery Ajax:

Примечание об устаревании: jqXHR.success (), jqXHR.error () и Обратные вызовы jqXHR.complete () удалены с jQuery 3.0. Ты можешь использовать Вместо этого jqXHR.done (), jqXHR.fail () и jqXHR.always ().

// 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" );
  });

Полагаю, вам необходимо изменить код, аналогичный указанному выше в документации.

0 голосов
/ 06 апреля 2019
  1. Вы проверили, что сервер / API, который вы публикуете для возврата ответа (используйте почтальона)
  2. Вы проверили заголовки для запроса.Возможно, вам потребуется добавить заголовки авторизации (довольно распространенная практика для общедоступных API-интерфейсов)
  3. Добавили ли вы client_id, app_id или api_key к запросу
  4. Аутентифицировали ли вы свой запрос (в основном, пункт 2/3))

2 и 3 должны возвращать ответ, в любом случае я бы использовал почтальон для проверки.Если почтальон должен хотя бы вернуть ответ.Проверьте заголовки и заголовок статуса http.Если вы получаете ответ 200, а содержимое не возвращается, вероятно, существует проблема с маршрутом или конфигурацией сервера

Ajax пример $ (документ) .on ('submit', '#searchdata', function (e) {e.preventDefault ();

//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)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...