浏览器的请求 复制到curl就能正常请求,但是在浏览器中就要在fetch报错
Status: 0 Compiler error.
<span id="currentUser">用户</span> 加入a标签
<a href=""></a>
变成
<a href=""><span id="currentUser">用户</span> </a>
就会导致任何浏览器失效
fetch ajax xmrequest
表面特征 显眼特征 显示特征
通过断点进入会在 window.fetch直接报错退出
const _o_fetch = window.fetch;
window.fetch = function() {
return _o_fetch.apply(this, arguments).then((response => { 直接报错说明啥原因1
原始报错
// 显示个人中心模态框
function openUserSettingsModal() {
document.getElementById('userSettingsModal').style.display = 'block';
// loadUserSettings(); // 加载用户设置数据
}
// 点击用户名显示个人中心
document.getElementById('currentUser').addEventListener('click', function() {
openUserSettingsModal();
});
// 加载用户设置数据
async function loadUserSettings() {
const loadingDiv = document.getElementById('settingsLoading');
loadingDiv.style.display = 'block';
try {
// 获取用户信息
const userResponse = await fetch(`${API_BASE_URL}/User/info`, {
headers: {
'Authorization': authToken
}
});
const userData = await userResponse.json();
// 获取用户设置
const settingsResponse = await fetch(`${API_BASE_URL}/User/settings`, {
headers: {
'Authorization': authToken
}
});
const settingsData = await settingsResponse.json();
// 填充表单数据
if (userData.Data) {
document.getElementById('userEmail').value = userData.Data.Email || '';
}
if (settingsData.Data) {
document.getElementById('enableEmailNotify').checked = settingsData.Data.EnableEmailNotify || false;
document.getElementById('enablePushNotify').checked = settingsData.Data.EnablePushNotify || false;
document.getElementById('notifySound').checked = settingsData.Data.NotifySound || false;
document.getElementById('appLight').checked = settingsData.Data.AppLight || false;
document.getElementById('wxWebhook').value = settingsData.Data.WxWebhook || '';
}
} catch (error) {
console.error('加载用户设置失败:', error);
alert('加载设置失败,请重试');
} finally {
loadingDiv.style.display = 'none';
}
}
// 保存用户设置
document.getElementById('userSettingsForm').addEventListener('submit', async function(e) {
e.preventDefault();
const loadingDiv = document.getElementById('settingsLoading');
loadingDiv.style.display = 'block';
// 构建设置数据对象
const settingsData = {
EnableEmailNotify: document.getElementById('enableEmailNotify').checked,
EnablePushNotify: document.getElementById('enablePushNotify').checked,
NotifySound: document.getElementById('notifySound').checked,
AppLight: document.getElementById('appLight').checked,
WxWebhook: document.getElementById('wxWebhook').value
};
try {
const response = await fetch(`${API_BASE_URL}/api/User/settings`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + localStorage.getItem('token')
},
body: JSON.stringify(settingsData)
});
if (response.ok) {
alert('保存设置成功');
closeUserSettingsModal();
} else {
alert('保存设置失败,请重试');
}
} catch (error) {
console.error('保存用户设置失败:', error);
alert('保存设置失败,请重试');
} finally {
loadingDiv.style.display = 'none';
}
});
// 显示个人中心模态框
function openUserSettingsModal() {
document.getElementById('userSettingsModal').style.display = 'block';
loadUserSettings(); // 加载用户设置数据
}
// 点击用户名显示个人中心
document.getElementById('currentUser').addEventListener('click', function() {
openUserSettingsModal();
});
</script>
</body>
</html>为什么loadUserSettings()不能正常获取数据