saveFofaFormToStorage({ provider, query, size, page, fields, full });
setFofaMeta(providerLabel(provider) + ' ' + _t('infoCollect.querying'));
setFofaLoading(true);
try {
const response = await apiFetch('/api/fofa/search', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ provider, query, size, page, fields, full })
});
const result = await response.json().catch(() => ({}));
if (!response.ok) {
throw new Error(result.error || `请求失败: ${response.status}`);
}
renderFofaResults(result);
} catch (e) {
console.error(providerLabel(provider) + ' 查询失败:', e);
setFofaMeta(_t('infoCollect.queryFailed'));
renderFofaResults({ provider, query, fields: [], results: [], total: 0, page: 1, size: 0 });
alert(_t('infoCollect.queryFailed') + ': ' + (e && e.message ? e.message : String(e)));
} finally {
setFofaLoading(false);
}
└─$ grep -B10 -A20 "/api/fofa/search" js/info-collect.js
if (!query) {
alert(_t('infoCollect.enterFofaQuery'));
return;
}
}