提交数据为空及API 404错误:前端数据提交问题求助
问题排查与修复方案
一、修复POST 404 Not Found错误
你确认的正确API端点是https://localhost:7072/api/Client,但代码里存在3处端点不一致的问题,直接导致404:
- handleSaveButtonClick中的axios请求地址错误
原代码用了错误的端口和协议,修改为正确端点:
axios.post('https://localhost:7072/api/Client', payload)
- postingData中的POST_REQUEST路径错误
如果POST_REQUEST是封装的axios请求,直接写完整端点避免路径或跨域问题:
src: (context, event) => POST_REQUEST("https://localhost:7072/api/Client", event.postData),
如果想统一管理,可在axios配置里设置baseURL:
axios.defaults.baseURL = 'https://localhost:7072'; // 后续请求可简化为:axios.post('/api/Client', payload)
二、解决接口接收null值的问题
1. 变量引用错误:未使用解析后的值
handleSaveButtonClick里定义了解析后的变量(如parsedClientName),但payload里用的却是原始变量,若原始状态未正确初始化就会传null,修改为使用解析后的值:
const payload = { ClientId: parsedClientId, ClientName: parsedClientName, // 替换原ClientName CompleteAddress: parsedCompleteAddress, // 替换原CompleteAddress ContactNumber: parsedContactNumber, Business: parsedBusiness, // 替换原Business PrincipalAmount: parsedPrincipalAmount, LoanTerm: parsedLoanTerm, LoanCycle: parsedLoanCycle, LoanBalance: parsedLoanBalance, ArrearsAmount: parsedArrearsAmount, DateGranted: DateGrantedString, MaturityDate: MaturityDateString, LastTransactionDate: LastTransactionDateString, LoanStatus: parsedLoanStatus, // 替换原LoanStatus CBUBalance: parsedCBUBalance, MyIponBalance: parsedMyIponBalance, TrustStaff: parsedTrustStaff, // 替换原TrustStaff };
2. 日期格式不统一:直接传递Date对象
handleSaveButtonLeave里直接传递DateGranted等Date对象,后端通常无法解析,需转成ISO字符串:
send({ type: "POST_DATA", postData: { client: { // ...其他字段不变 DateGranted: DateGrantedString, // 替换原DateGranted MaturityDate: MaturityDateString, // 替换原MaturityDate LastTransactionDate: LastTransactionDateString, // 替换原LastTransactionDate // ...其他字段不变 }, }, });
3. 删除冗余的无效代码
postingData的entry动作里所有字段都是event.postData.client.X = event.postData.client.X,完全是无效代码,还可能引发变量覆盖风险,直接删掉:
// 移除以下全部内容 entry: (context, event) => { event.postData.client.ClientId = event.postData.client.ClientId; // ...所有重复赋值的代码 console.log("Entering postingData state. Received event:", event); },
4. 检查状态变量与输入框的绑定
确认ClientId、ClientName等状态变量是否正确绑定输入框(以React为例):
// 示例:正确的输入框绑定方式 const [ClientName, setClientName] = useState(''); <input value={ClientName} onChange={(e) => setClientName(e.target.value)} placeholder="客户名称" />
若未正确绑定,输入值不会同步到状态变量,提交时自然传null。
内容的提问来源于stack exchange,提问作者Johane Grei Dingding
相关产品推荐
相关产品推荐

