Disqus Javascript API 跨域问题 on localhost.
Disqus Javascript API crossdomain issue on localhost
我正在尝试构建一个页面,显示指向我的一堆博客文章的链接,并在每个链接旁边有一个小气泡,其中包含该帖子的评论计数。 认为最简单的方法是使用disqus在其开发文档中讨论的"Javascript面向公众的API"。
如果我在浏览器中访问此链接,我会得到我正在寻找的 JSON:
https://disqus.com/api/3.0/threads/details.json?forum=BLOG_FORUM&thread:ident=BLOG_THREAD&api_key=PUBLIC_API_KEY
但是,当我尝试从jQuery加载它时,它给了我可怕的XMLHttpRequest无法加载:Access-Control-Allow-Origin不允许Origin。
我尝试使用 $.getJSON() 和 $("#div").load() 来加载它。
我已将本地主机和 127.0.0.1 添加到 Disqus API 中的"链接到我的公钥的域"设置中。
要在客户端使用此 API,您需要执行 JSONP 请求。事实上的标准是指定函数名称的回调参数。 Disqus还需要将.json
更改为.jsonp
使用jQuery.getJSON
,然后您只需添加&callback=?
,jQuery将从那里获取它。
不能在响应标头中添加"localhost"作为源条目。这是因为 CORS
的 JavaScript 安全规范
Access-Control-Allow-Origin 可以设置为 * 以允许任何网站通过 XMLHTTPRequest/AJAX 访问数据,但您不能将其设置为"localhost"。
解决此问题的可能解决方案是:在公共域/位置托管发出请求的页面,并在响应标头 Access-Control-Allow-Origin 中包含主机名。
正如"@Matthew Flaschen"所提到的,您可以将JSONP请求与&callback=?
一起使用来完成此操作
或者,作为最后的手段,通过在"src"属性中指定 URL 来加载 JSON 结果以及 <script>
标记中的脚本,并访问 JSON 数据
例如:在服务器端修改结果以包含<variable_name>={JSONObject}
技术,并且随着脚本加载,可以通过该变量访问数据
有些人在这里遇到了同样的问题
仍然无法弄清楚为什么浏览器拒绝Access-Control-Allow-Origin=localhost
但它们支持Access-Control-Allow-Origin=*
(意味着任何公共网站都可以访问数据,但是......这件事可能有一些阴谋(跟踪访问数据的网站)
,您可以按照这些说明仅使用脚本和数据驱动的属性来执行此操作。 您只需加载 Disqus 计数.js脚本,然后使用data-
属性。
编辑:您可以将其配置为仅在此处显示整数(然后您可以根据需要设置样式)。
我认为您只需要顶部的标题:
<?php header('Access-Control-Allow-Origin: http://disqus.com'); ?>
- Ruby on Rails 4:在 Rails Web 应用程序中添加 Javascript 文件时遇到问题
- OnMouseMove on body标记导致子下拉元素出现问题
- Disqus Javascript API 跨域问题 on localhost.
- Ruby on Rails 新人的问题
- on() 和 off(),on() 立即触发,但我希望它像绑定或生活一样“行动”,这里有什么问题
- BackboneJS + Ruby on Rails (rails-api) 跨域问题
- Javascript-JQuery on()clearTimeout范围问题
- on()和多个绑定的Jquery问题
- .on()和AJAX的问题
- jQuery插件对象:通过.on()附加了一个事件处理程序,现在有一个范围问题.(主插件对象)
- jQuery ON方法子标签问题
- 使用带有动态添加元素的.on()时出现的问题
- ruby on rails应用程序页面加载的javascript问题
- Ruby on Rails与Windows的部署问题
- jQuery .on()问题,console.log()工作,但元素交互不't
- Angular JS与Ruby on Rails的路由问题
- .on()方法的问题
- 错误的定时问题,Telerik RadEditor控件's客户端事件和jquery's on page
- uncaughtException然后appendFile on error这会导致问题吗?NodeJs
- D3+传单map.on()问题-运行函数期间(或之后)拖动事件