@@ -60,58 +60,58 @@ class WebViewGlobalController {
60
60
String jsonData = jsonEncode (data);
61
61
62
62
String jsCode = """
63
- new Promise((resolve, reject) => {
63
+ new Promise((resolve, reject) => {
64
64
try {
65
65
var formData = new FormData();
66
66
var parsedData = JSON.parse('$jsonData ');
67
-
67
+
68
+ // File processing remains the same
68
69
for (var key in parsedData) {
69
70
var value = parsedData[key];
70
-
71
- // Decode Base64 string to binary data
72
71
var binaryString = atob(value.base64);
73
72
var binaryLength = binaryString.length;
74
73
var binaryArray = new Uint8Array(binaryLength);
75
-
74
+
76
75
for (var i = 0; i < binaryLength; i++) {
77
76
binaryArray[i] = binaryString.charCodeAt(i);
78
77
}
79
-
80
- // Create Blob and File from the decoded binary data
78
+
81
79
var blob = new Blob([binaryArray], { type: value.mimeType });
82
80
var file = new File([blob], value.filename, { type: value.mimeType });
83
-
84
- // Append file to FormData
85
81
formData.append('files[]', file);
86
82
}
87
-
88
- // Make AJAX POST request using fetch
89
- fetch('$url ', {
83
+
84
+ // jQuery AJAX implementation
85
+ \$ .ajax({
86
+ url: '$url ',
90
87
method: 'POST',
91
- body: formData,
92
- headers: JSON.parse('$jsonHeaders ')
93
- })
94
- .then(response => {
95
- if (!response.ok) {
96
- throw new Error(`HTTP error! status: \$ {response.status}`);
97
- }
98
- return response.json(); // Assuming the server responds with JSON
99
- })
100
- .then(data => {
101
- const jsonString = JSON.stringify(data);
88
+ data: formData,
89
+ processData: false,
90
+ contentType: false,
91
+ headers: JSON.parse('$jsonHeaders '),
92
+ success: function(data) {
102
93
window.flutter_inappwebview.callHandler('onAjaxSuccess', data);
103
94
resolve(data);
104
- })
105
- .catch(error => {
106
- window.flutter_inappwebview.callHandler('onAjaxError', { status: error.status || 'unknown', error: error.message });
107
- reject({ status: error.status || 'unknown', error: error.message });
108
- });
95
+ },
96
+ error: function(xhr) {
97
+ var error = {
98
+ status: xhr.status || 'unknown',
99
+ error: xhr.responseText || xhr.statusText
100
+ };
101
+ window.flutter_inappwebview.callHandler('onAjaxError', error);
102
+ reject(error);
103
+ }
104
+ });
109
105
} catch (e) {
110
106
console.error('Error in AJAX request:', e);
107
+ window.flutter_inappwebview.callHandler('onAjaxError', {
108
+ status: 'exception',
109
+ error: e.message
110
+ });
111
111
reject(e);
112
112
}
113
113
});
114
- """ ;
114
+ """ ;
115
115
116
116
try {
117
117
await value? .evaluateJavascript (source: jsCode);
0 commit comments