我正在嘗試通過 AJAX 將表單數據的內容發送到 python-flask 應用程序。這是 Javascript 代碼的基本部分function sendFormInfo(){? var formInfo = document.getElementById('formInfo');? var elems = formInfo.elements;? return new Promise(function(resolve, reject) {? ? var getFd = toFormFromElems(elems);? ? getFd? ? .then(function(fd){? ? ? fd.set('my_key', 'my_value')? ? ? inspectFormData(fd);? ? ? var timestamp = (new Date()).getTime();? ? ? $.ajax({? ? ? ? url: "/updategame" + '?_=' + timestamp,? ? ? ? type : "POST",? ? ? ? processData: false,? ? ? ? contentType: false,? ? ? ? dataType: "text",? ? ? ? data : fd? ? ? })? ? ? .done(function(respPost) {? ? ? ? resolve(respPost)? ? ? })? ? ? .fail(function(data) {? ? ? ? console.log("Post request failed.")? ? ? ? console.log(data);? ? ? });? ? ? })? ? })}function inspectFormData(inputFormData){? for(var pair of inputFormData.entries()) {? ? console.log(pair[0]+ '-> '+ pair[1]);??}}function toFormFromElems(elems){? return new Promise(function(resolve, reject){? ? var fd = new FormData();? ? for (var i = 0, elem; elem = elems[i++];){? ? ? // console.log(elem.id + " -> " + elem.value);? ? ? fd.set(String(elem.id), String(elem.value));? ? }? ? // console.log(fd);? ? resolve(fd);? })}以及 python 的:@main.route("/updategame", methods=["POST"])@login_requireddef update_game():? ? print(request.files)? ? print(request.files.keys())? ? return "success"在我看來,我可以正確填寫表單數據:但我在 python 端點得到一個空字典:雖然非常非常(是的,雙重非常)類似的方法已被證明可以工作,但是當發送視頻時(從畫布發送圖像,并等待 AJAX POST 響應)有人有什么建議嗎?我已經嘗試將緩存斷路器添加到請求中。
使用 AJAX Javascript 發送純文本表單數據
拉丁的傳說
2023-07-14 15:38:18