javascript - 403 JSONP 请求被禁止

标签 javascript ajax json jsonp

有一个我无法控制的域返回 JSON 数据 - 转到 http://services.example.com/search?store=ITUNES&q=twitter产生类似的东西

{
  MySearch: {
    resultCount: 1
    results: [
      { name: "twitter" }
    ]
  }
}

当我尝试从另一个域(例如从我自己的计算机(使用 jQuery))使用 jsonp 获取它时 --

$.ajax({
    url: 'http://services.example.com/search?store=ITUNES&q=twitter',
    dataType: 'jsonp',
    success: function(data) {
        console.log('hi');
    }
});

我收到“状态代码:403 禁止”。

以下是服务器响应 header :

Connection:keep-alive
Content-Length:9
Content-Type:text/plain
Date:Thu, 05 Jan 2012 20:33:04 GMT
Server:WEBrick/1.3.1 (Ruby/1.9.3/2011-10-30)
X-Frame-Options:sameorigin

有什么方法可以在不进行任何服务器端更改的情况下获取这些数据吗?

最佳答案

尝试下面的代码片段。请记住,整个响应将作为对象存储在控制台中,您可以简单地使用 data[i] 等引用每个键值对。

var jServices = jQuery.noConflict();
jServices.ajaxSetup({
    contentType: "application/jsonp; charset=UTF-8"
});
jServices.getJSON("http://services.joppio.com/services/search?session=AF8990-34GDC-03345&store=ITUNES&pos=0&cnt=10&q=twitter", function (data) {
    console.log(data);
});

希望它能解决您的问题。

关于javascript - 403 JSONP 请求被禁止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8749580/

相关文章:

javascript - 创建动态模式但它不起作用

php - 如何从php中的url获取json

javascript - 将对象数组转换为对象

javascript - 在特定国家/地区创建随机闪烁点

javascript - 当包含 ember-data 时,TypeError DS.RESTAdapter 未定义

javascript - jQuery .hide() 我做错了什么

javascript - <div> 标签未显示 Ajax 的 JSON 响应

javascript - 从 Ajax 查询中获取结果

php - 在 ajax 成功时显示用户消息

jquery - 通过 jquery 在 ul 中插入列表项