TCS54321 Ответов: 1

Передать параметр даты и часового пояса с помощью jQuery Аякс


я загружаю файл с помощью вызова jquery ajax. вот мой код:

$scope.UploadFiles = function (files, data) {
      $scope.SelectedFiles = files;

     var uploaddate= $("#uploaddate").val();


      if ($scope.SelectedFiles && $scope.SelectedFiles.length) {
          Upload.upload({
              url: '/FileUpload/Uploaddocumentmethod?data=' + JSON.stringify(data)  + '&uploadDate=' + uploaddate,
              data: {
                  files: $scope.SelectedFiles
              }
          }).then(function (response) {
              alert("Success")
          }, function (error) {
             alert("ERROR")
          });
      }
  };


а код метода контроллера таков :

public void Uploaddocuments(string Data, string uploaddate)
{
   my code...
}


я передаю дату с часовым поясом (
23.09.2020 14:00 +0530 
) в jQuery. но в контроллере у меня есть формат даты, например (
23.09.2020 14:00 0530 
) . он удаляет знак "+" из даты.Может ли кто-нибудь подсказать мне, где я ошибаюсь?

Что я уже пробовал:

я ищу в google, но не получаю никакого решения, связанного с этой проблемой.

1 Ответов

Рейтинг:
5

Richard Deeming

Вам нужно правильно закодировать данные, которые вы отправляете как часть URL-адреса. Воспользуйся encodeURIComponent, или jQuery param метод:

// Either:
url: '/FileUpload/Uploaddocumentmethod?data=' + encodeURIComponent(JSON.stringify(data)) + '&uploadDate=' + encodeURIComponent(uploaddate)

// Or:
url: '/FileUpload/Uploaddocumentmethod?' + $.param({data: JSON.stringify(data), uploadDate: uploaddate})
encodeURIComponent() - JavaScript | MDN[^]
jQuery.param() | документация по API jQuery[^]

Но вам нужно будет использовать FormData объект, если вы хотите загрузить файлы через AJAX:
Использование объектов FormData - Web API | MDN[^]


TCS54321

Огромное спасибо. это прекрасно работает для меня. Ты спасаешь мне жизнь.