【发布时间】:2026-01-30 19:35:01
【问题描述】:
我正在尝试通过 Disqus API 在我的网站/论坛上检索最近的 cmets。当我在地址栏中尝试时,我的请求有效,但是当我尝试使用 JQuery 进行 AJAX 调用时出现 400 错误。
我的 JSON 请求:
$.ajax({
type: 'GET',
url: "https://disqus.com/api/3.0/forums/listPosts.json",
data: { api_key: 'my_public_key', forum : 'my_forum_name'},
cache: false,
dataType: 'json',
success: function (result) {
console.log("SUCCESS");
}
});
当我尝试上述 JSON 请求时,我在控制台中收到一条错误消息,指示未在服务器响应中设置 Access-Control-Allow-Origin 标头。对我来说,这表明 Disqus 没有设置为支持 CORS 请求,但文档表明 Disqus 支持 JSON 作为请求类型。
我的 JSONP 请求:
$.ajax({
type: 'GET',
url: "https://disqus.com/api/3.0/forums/listPosts.jsonp",
data: { api_key: 'my_public_key', forum : 'my_forum_name'},
cache: false,
dataType: 'jsonp',
success: function (result) {
console.log("SUCCESS");
}
});
当我根据 Disqus 提供的 tutorial 尝试上述 JSONP 请求时,我仍然收到 400 Bad Request 作为响应。
当我使用同一个开发服务器使用 curl 发出两个请求时,我可以在响应正文中看到正确的 JSON 或 JSONP 格式的响应,尽管标头列出了 400 错误。 (但是,当我在此处突出显示请求时,Chrome 网络选项卡会显示“此请求没有可用的响应数据”——也许我需要在 Chrome 的开发通道上才能看到响应。)
我已经在几个不同的域上尝试了这两个请求,并确保每次我测试请求的域都被 Disqus 列为受信任域,但我不确定这是否重要。
我知道代理可能会解决 JSON 问题,但由于 Disqus 声明它们支持 JSON 和 JSONP 请求,我宁愿不必这样做。我还能尝试什么?
【问题讨论】:
标签: jquery ajax json jsonp disqus