Как прочитать файл Excel в json и отправить в CF C для вставки базы данных? - PullRequest
0 голосов
/ 19 февраля 2020

Я читаю файл Excel с помощью плагина "xlsx.full.min. js" и получаю данные файла в JSON объект. Затем я отправляю этот JSON объект в Coldfusion Component (CF C ) с использованием jQuery Ajax, но это выдает ошибку «400 Bad request». CF C не получает данные JSON, которые я пытаюсь отправить. Что не так в моем коде?

var selectedFile = evt.target.files[0];
                    var reader = new FileReader();

                    reader.onload = function(event) {

                          var data = event.target.result;
                          var workbook = XLSX.read(data, {
                              type: 'binary'
                          });

                          workbook.SheetNames.forEach(function(sheetName) {
                                 var excel_json = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]);

                                var json_object = JSON.stringify(excel_json);

                                $.ajax({
                                    url:"maps.cfc",
                                    dataType: "json",
                                    data: {
                                        method:"updateFuelPrices",
                                        jsstruct:json_object
                                    },

                                    success: function(data) {
                                        console.log(data);
                                        console.log("update successful");
                                    },
                                    error: function(xhr, textStatus, errorThrown) {
                                        console.log(textStatus);
                                        console.log(errorThrown);
                                        console.log("Something went wrong! Please refresh the page and try again.");
                                    }
                                })
                            })
                    };

                    reader.onerror = function(event) {
                      console.error("File could not be read! Code " + event.target.error.code);
                    };

                    reader.readAsBinaryString(selectedFile);
              });

И моя функция CF C:

<cffunction name="updateFuelPrices"  output="false" access="remote" returnformat="json" returntype="string">
        <cfargument name="jsstruct" type='string' required="true">
        <cfset returntext = 'json sent successfully...'>
        <cfdump var="#ARGUMENTS.jsstruct#">
         <!--- DB insert query to go here --->
        <cfreturn returntext>
    </cffunction>

1 Ответ

0 голосов
/ 20 февраля 2020

Обновление: я решил эту ошибку, используя метод десериализации JSON () в моем CF C для декодирования json, полученного от javascript.

...