【发布时间】:2014-05-25 16:30:15
【问题描述】:
我知道有几个与此相关的问题 - 但我找不到我的答案。另外,我想进一步澄清一下。
我正在本地运行一个 Rails 应用程序,它对用作 API 的 sinatra 应用程序进行 jsonp 调用。
当我将此 URL 放入浏览器时,我最终得到了正确的响应,但是当我使用 $.getJSON 通过 jQuery 进行此调用时,我得到了一个禁止的 403 错误。我知道 $.getJSON 正在根据具有 callback=? 的 url 发出 jsonp 请求。参数。
我正在尝试找出导致 403 错误的原因。 api应用程序上是否有一些默认配置拒绝请求,因为脚本是从包含的脚本标签中请求的?
现在 api 请求返回 json 数据。我认为我有责任查看回调参数并构造一个实际调用回调的响应...
所以如果 url 是 http://myapi.com?callback=blah,那么我应该返回如下内容:
废话({foo: 'bar'})
但我不知道 403 到底是什么。如果返回的是 api 服务器,那么它试图防止什么?
以下是 jsonp 调用的示例:
$.getJSON( 'http://myapi.com?callback=?', {biz: 'buzz'})
我看到有关为跨源问题设置标头的帖子——但不确定为什么 jsonp 请求需要这样做。
【问题讨论】:
标签: jsonp