smeb 2024-07-11 16:02 采纳率: 50%
浏览 12

JS POST 失败,POSTMAN 发成功?

JS POST 失败,POSTMAN 发成功?
JS POST 不执行fetch(url ,直接到catch(ex){FR.Logger.error(ex);FR.Msg.toast(FR.i18nText('Custom')+'JS'+FR.i18nText('Error')+' : '+ex.message);}}).createDelegate(this, [], 0).apply(this, arguments)
代码如下

debugger;
const url = 'http://*';
const username = '*';
const password = '*';

const Body = {
"approver": "N8181820",
"factory": "2022",
"name_of_parts": "ame_of_parts",
"document_number": "NNNNN",
"machine_tool_type": "machine_tool_type",
"new_version_number": "w_version_nu",
"program_name": "program_name",
"part_drawing_number": "part_drawin",
"auditor": "N8181820",
"issuing_nature": "issuing_nature",
"list": [

{
  "sequence_number": "111111111",
  "field1": "12",
  "modify_type": "22",
  "field3": "21321",
  "field2": "123",
  "field5": "3213",
  "field4": "321312"
}
],
"applicant": "N8181820",
"program_number": "ogram_number",
"attachment": "attachment",
"procedure_description": "edure_descrip",
"application_time": "2024-06-23",
"machine_number": "machine_numbe",
"tzid": "10001",
"group_counter": "group_counter",
"original_version_number": "ginal_versio",
"operation_number": "operation_numbe",
"material_code": "material_code"
};

fetch(url, {
method: 'POST',
headers: {

'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa(username + ':' + password)
},
body: JSON.stringify(Body)
})
.then(response => {

if (!response.ok) {
  throw new Error('Network response was not ok ' + response.statusText);
}
return response.json();
})
.then(data => {

// 处理响应数据
console.log(data);
})
.catch(error => {

// 处理错误
console.error(error);
});

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-07-11 16:02
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    当你在使用 JavaScript 的 fetch API 进行 POST 请求时遇到问题,而 POSTMAN 成功发送请求,通常有几个方面需要检查:

    1. URL 验证:确保 fetch 函数中的 url 变量是正确的,并且与 POSTMAN 中使用的 URL 一致。注意 URL 中的协议(http/https)和端口号(如果有)。

    2. 请求头:检查 headers 对象中的 'Content-Type' 是否设置为 'application/json',因为 POSTMAN 通常默认使用这个类型。同时,验证 'Authorization' 头是否正确,包括基本认证的编码格式。

    3. 请求体:确保请求体 Body 构造正确,并且与服务器端接收的格式一致。

    4. 错误处理catch 块中的错误处理代码应该能够捕获到请求过程中的异常,但首先要确保 fetch 调用没有语法错误。

    5. 网络问题:检查是否有跨域请求问题(CORS),这可能导致请求被浏览器阻止。

    6. 服务器端问题:服务器可能对 POSTMAN 和浏览器的请求有不同的响应,需要检查服务器端的日志来确定问题。

    7. 浏览器安全设置:浏览器可能有安全设置阻止了请求,尤其是在使用 file:// 协议加载本地 HTML 文件时。

    8. 调试:使用 console.log 或者 debugger 语句来检查请求发送前后的状态。

    针对你的代码,这里有一些具体的建议:

    • 确保 url 变量替换为有效的服务器地址。
    • 检查 usernamepassword 是否正确,并且基本认证的编码是否正确。
    • 检查 Body 对象中的属性名和值是否与服务器端的要求一致,特别是那些看起来像是拼写错误的属性(例如 "ame_of_parts" 应该是 "name_of_parts")。
    • 确认 Authorization 头的编码是否正确,可以尝试在 POSTMAN 中复制相同的编码来验证。

    如果你需要进一步的帮助,可以提供更多的错误信息或者服务器端的响应。同时,我可以提供一些参考链接,但请注意,由于我不能访问外部链接,以下链接仅供参考:

    希望这些建议能帮助你解决问题。如果还有其他疑问,随时欢迎提问。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月11日

悬赏问题

  • ¥30 stm32f103c8t6制作万能红外遥控器
  • ¥15 有人会fastcrud写前端页面吗
  • ¥15 如何解除Uniaccess管控
  • ¥15 微信小程序跳转关联公众号
  • ¥15 Java AES 算法 加密采用24位向量报错如何处理?
  • ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
  • ¥45 字符串操作——数组越界问题
  • ¥15 Loss下降到0.08时不在下降调整学习率也没用
  • ¥15 QT+FFmpeg使用GPU加速解码
  • ¥15 为什么投影机用酷喵播放电影放一段时间就播放不下去了?提示发生未知故障,有什么解决办法吗?