0

我有一个来自后端的 api,如果我直接访问浏览器中的 url,我可以正确看到响应,但如果我使用 Ajax 加载它,我总是会502 Bad Gateway出错。

页面和 api 在同一个域中:http://xx.comhttp://xx.com/api.

这真的很奇怪,怎么会这样?

更新:我进一步探索了它,发现甚至var img = new Image(); img.src = url;出现 502 错误。

4

1 回答 1

1

正如本页有用地解释的那样,“上游服务器和网关/代理不同意交换数据的协议。” 在这种情况下,这可能会发生,因为您的 Ajax 请求指定了不同的标头(例如不同的“Accept”标头),从而导致在您的代理和实际后端之间交换不同的实体类型(即正文)。我建议使用像 Firebug 或 Chrome 调试器这样的工具来检查您的常规请求和 Ajax 请求的详细信息,寻找显着差异,并根据需要向 Ajax 请求添加标头以获得所需的结果。

于 2012-09-03T04:37:18.183 回答