如何从XMLHttpRequest的响应中提取ID?
从API响应中提取ID的方法
API返回的是JSON格式字符串,你需要先将其解析为JavaScript对象,再直接访问id属性。以下是修改后的代码实现:
var request = new XMLHttpRequest(); request.open('POST', 'https://app.cubi.casa/api/integrate/v3/orders/draft'); request.setRequestHeader('content-type', 'application/json'); request.setRequestHeader('api-key', 'KEY'); request.onreadystatechange = function () { if (this.readyState === 4) { console.log('Status:', this.status); console.log('Headers:', this.getAllResponseHeaders()); console.log('Body:', this.responseText); // 清理响应文本:去除首尾多余的双引号(匹配你提供的响应格式) let cleanedResponse = this.responseText.replace(/^"|"$/g, ''); try { // 将字符串解析为JavaScript对象 const responseData = JSON.parse(cleanedResponse); // 提取ID字段 const orderId = responseData.id; console.log('提取到的ID:', orderId); // 这里可以添加ID的后续使用逻辑,比如存储、发起新请求等 } catch (error) { console.error('解析响应失败:', error); } } }; var body = { 'street': '615 Bourbon St', 'suite': '', 'city': 'New Orleans', 'state': 'Louisiana', 'country': 'United States', 'postalCode': '70130', 'info': 'Extra info', 'latitude': 29.958365, 'longitude': -90.066198, 'external_id': 'R4ER93', 'owner_email': 'Email.com', 'package_type': 'plus' }; request.send(JSON.stringify(body));
关键步骤说明
- 清理响应文本:你的响应示例中JSON字符串被额外的双引号包裹,所以先用
replace(/^"|"$/g, '')去除首尾引号,避免解析失败。 - 解析JSON:使用
JSON.parse()将处理后的字符串转为可操作的JS对象。 - 提取ID:直接通过
responseData.id获取目标字段值。 - 错误处理:加入
try-catch块捕获解析异常,防止因响应格式问题导致代码中断。
内容的提问来源于stack exchange,提问作者user27153461
相关产品推荐
相关产品推荐

