【问题标题】:Cross Domain JSON Request Failing跨域 JSON 请求失败
【发布时间】:2011-10-17 04:25:02
【问题描述】:

我正在尝试在浏览器的控制台中运行此代码:

$.ajax({
    dataType: 'json',
    url: 'http://www.web2pdfconvert.com/engine?curl=http://www.nytimes.com&outputmode=json?callback=?',
    success: function (data) {
    if(data.resultcode == 1) {
      console.log(true);
    } else {
      console.log(false);
    }

  },
  });

但是,我收到了跨域请求错误。当我尝试发出简单的 JSON 请求时,也会发生同样的错误,因为无法在跨域上发出 JSON 请求。但是,当您访问此 URL 时:

http://www.web2pdfconvert.com/engine?curl=http://www.nytimes.com&outputmode=json

您将能够看到 JSON 数据。然而,这个网站 API 的文档中写的一个关键点是:

json - 所有转换数据都作为 JSON 对象返回。 JSONP 跨域通信也支持使用 jQuery。

提前致谢。

【问题讨论】:

标签: json cross-domain


【解决方案1】:

改用 jsonp:

$.ajax({
    dataType: 'jsonp',
    url: 'http://www.web2pdfconvert.com/engine?curl=http://www.nytimes.com&outputmode=json',
     jsonp: "callback",
     success: function (data) {
    if(data.resultcode == 1) {
      console.log(true);
   } else {
      console.log(false);
    }

  },
  });

【讨论】:

  • 我在浏览器的控制台中收到此错误:Uncaught SyntaxError: Unexpected token :engine: 2
  • 我试了一下,看看返回的http请求。该站点正在返回正确的 json,但看起来不像 jsonp。它不是将 json 包装到回调方法中。与 API 提供商聊天。
猜你喜欢
  • 2017-12-27
  • 2015-01-28
  • 1970-01-01
  • 2013-10-24
  • 1970-01-01
  • 2011-01-04
  • 2016-06-23
  • 2014-03-29
  • 2018-12-02
相关资源
最近更新 更多