从ajax请求jQuery接收数据

时间:2018-10-05 22:58:16

标签: javascript jquery json ajax http

我正在研究定制图书网站的项目,并且我想从Goodreads API中获得图书评论, 我的问题是我没有收到来自Ajax请求的任何内容, 这是我的代码

$.ajax({
    'type': 'GET',
    'url': 'https://www.goodreads.com/book/review_counts.json',
    'contentType': 'application/json; charset=UTF-8',
    'data': {
        'key':'GHEH*******4B3w',
        'format':'json',
        'isbns':9782811215576,
    },
    'dataType':'jsonp',
    'success': function(data){
        console.log(data);
    },
    'error': function(xhr, textStatus, error){
      console.log(xhr.statusText);
      console.log(textStatus);
      console.log(error);
    }
});

我在浏览器控制台上收到这样的消息:

error
error
error
Failed to load for <script> element whose source is « https://www.goodreads.com/book/review_counts.json?callback=jQuery33108722523662348513_1538779243929&key=GH ...

但是当我尝试像这样直接从浏览器访问链接时:

https://www.goodreads.com/book/review_counts.json?key=GHE*******B3w&format=json&isbns=9782811215576

效果完美

1 个答案:

答案 0 :(得分:2)

您遇到的问题是CORS(跨域资源共享 ),goodreads.com不会allow-control-allow-origin给任何人,除非他们在那里有HTTP响应,要求您的域使用您将无法使用的资源的授权

不过,您可以使用JSONP或CORS代理

  • 如果您通过脚本将请求发送到此代理,它将可以正常工作(但如果使用过多,它们会有配额):
  

https://crossorigin.me/https://www.goodreads.com/book/review_counts.json?key=GHE ******* B3w&format = json&isbns = 9782811215576