2014-07-22 71 views
0

我试图找回经由Disqus API我的网站/论坛最近的评论。我的请求在地址栏中尝试时有效,但当我尝试使用JQuery进行AJAX调用时,出现了400个错误。AJAX请求JSON/JSONP来Disqus API获得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请求,我在控制台收到一条错误消息,指示访问控制允许来源包头未设定服务器响应。对我而言,这表明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"); 
} 
}); 

当我尝试按本tutorial由Disqus提供的上述JSONP请求,我仍然得到400错误的请求作为响应。

当我做使用相同的开发服务器与卷曲双方请求,我可以看到在响应主体正确的JSON或JSONP格式的响应,尽管标题列出了一个400错误。 (然而,在Chrome网络选项卡指出,“这一要求没有响应数据可用”时,我想强调的要求存在 - 也许我需要使用Chrome的开发渠道,以便查看响应。)

我试着这两个请求都在两个不同的域中进行,并确保每次我测试请求的域都与Disqus一起列为受信任的域,但我不确定这一点。

我知道,一个代理可能会解决这个JSON问题,但类似Disqus指出,他们支持JSON和JSONP请求,我不希望有这样做。我还能尝试什么?

回答

1

有一个字段在Disqus用于指定哪些URL可以使用您的公共密钥(disqus.com/api/applications->点击您的应用程序 - >导航到设置选项卡),这是不同于受信任域字段Disqus的管理面板的高级设置。将我网站的网址添加到前者解决了问题。

0

您是否尝试过加入 '?回调=?'到URL?我有类似的情况,但有一个我们无法配置的API。一旦添加了这个参数,我们就能够得到正确的响应。

+0

您可能要添加为一个评论,而不是答案。它并没有真正具体地回答这个问题。 –