Ajax 响应 Json 数据,并不总是有效

Ajax Response Json data, are not always valid

我的网站正在使用 ajax 调用将产品添加到购物车。每次客户按下 "Add to Cart" 按钮时,都会调用一个 ajax 请求。 Json 数据响应有时无效或格式不正确。

使用 firefox 开发者工具,这是两种方式的响应数据:

正常json响应:

无效json数据响应:

1) 这是什么问题?
2)为什么在某些情况下会发生这种情况而不是其他情况?会不会是数据本身造成的? 3) 可能的解决方案?

1) What kind of issue is this?

服务器端问题。

2) Why is this happening in some cases and not other cases?

服务器端后端代码中的错误逻辑。

Could it be the data itself causing this?

没有

3) Possible solutions to this?

修复服务器端代码的逻辑。

您应该检查 Ajax 函数的数据类型是否为 JSON 并且您应该检查您的服务器端代码,也许响应的格式不正确。

浏览器无法解析JSON数据一般有两种情况:

  1. 错误Content-Typeheader
  2. 格式错误的JSON字符串

在你的情况下,它有时有效,有时无效,它可能是第二个。您的响应中必须有一些字符在您的服务器端代码中转义,这些字符在浏览器中无效。在将 objects 转换为 JSON 字符串时,所有服务器端语言都有选项。您可以在 JSON linter 中检查无效响应,例如 https://jsonlint.com/ 以查看导致问题的部分,然后搜索选项以在您的服务器端代码中禁用此行为。

你的问题 post 参数有时发送值或有时不检查 javascript 的代码和服务器代码以进行验证。