Обработка проблем предварительной проверки CORS в запросах APIHtml

Программисты Html
Ответить
Anonymous
 Обработка проблем предварительной проверки CORS в запросах API

Сообщение Anonymous »

Код: Выделить всё

// Submit feedback
async function submitFeedback() {
const email = document.getElementById('feedback-email').value.trim();
const text = document.getElementById('feedback-text').value.trim();
const captchaValue = document.getElementById('captchaValue').value.trim();

// Validate input
if (!email || !text || !captchaValue) {
alert("Email, content, and captcha cannot be empty!");
return;
}

const feedbackData = {
email,
text,
captcha_id: captchaId,
captcha_value: captchaValue
};

try {
// Generate signature
const signature = await generateHMAC(new URLSearchParams(feedbackData), key);

// Send request
const response = await fetch('https://127.0.0.1:8080/gongdan', {
method: 'POST',
credentials: 'include', // Ensure sending and receiving cookies
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Timestamp': Math.floor(Date.now() / 1000).toString(), // Current timestamp
'X-Signature': signature, // Pass the signature
'X-Nonce': Math.random().toString(36).substring(2, 15) // Randomly generate a nonce
},
body: new URLSearchParams(feedbackData)
});

// Handle response
const data = await response.json();

if (data.code === "0") {
document.getElementById('feedback-response').innerHTML = `
Feedback ticket created successfully!
`;
} else {
document.getElementById('feedback-response').innerHTML = `
Feedback failed: ${data.data}
`;
}
} catch (error) {
document.getElementById('feedback-response').innerHTML = `
Request failed: ${error.message}
`;
}
}
Проблема с кодом:
При его выполнении возникает проблема: после того, как браузер отправляет запрос OPTIONS, следующие вызовы функций к другим серверным API также отправляют ОПЦИИ запроса. Это продолжается до тех пор, пока я не остановлю и не перезапущу серверную часть, хотя серверная часть показывает, что запрос OPTIONS прошел.
Это сообщение внутренней консоли:
< блок-цитата>
[ГИН] 2025/01/18 - 11:08:18 | 204 | 0 с | 127.0.0.1 | ОПЦИИ "/captcha"
Идентификатор сеанса:
2025-01-18 11:08:18.4210575 +0800 CST m=+10.512820201 1m0s
1 2
[GIN] 2025/01 /18 - 11:08:18 | 200 | 4,1433 мс | 127.0.0.1 | ПОЛУЧИТЬ "/captcha"
[GIN] 2025/01/18 - 11:08:23 | 204 | 0 с | 127.0.0.1 | ОПЦИИ "/gongdan"
Очевидно, что серверная часть получила только запрос ОПЦИИ и не получила запрос POST. После этого, какой бы API ни вызывался, будет отправляться только запрос OPTIONS, а последующие запросы отправляться не будут.
Что делать?


Подробнее здесь: https://stackoverflow.com/questions/793 ... i-requests
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»