Javascript jQuery$.getJSON方法仍给出CORS错误

Javascript jQuery$.getJSON方法仍给出CORS错误,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,这是我基于此的代码 这是我的错误: 无法加载XMLHttpRequest。从到的重定向已被CORS策略阻止:请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许“源”访问 我还尝试了以下代码: $(document).ready(function(){ $('#new-quote').click(function(){ var url = 'http://api.forismatic.com/api/1.0/?format=jsonp&

这是我基于此的代码

这是我的错误:

无法加载XMLHttpRequest。从到的重定向已被CORS策略阻止:请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许“源”访问

我还尝试了以下代码:

$(document).ready(function(){
  $('#new-quote').click(function(){
    var url = 'http://api.forismatic.com/api/1.0/?format=jsonp&jsonp=_';
    $.getJSON(url).done(update).fail(err);
    function update(response){
      console.log(response);
    }
    function err(jqxhr, textStatus, err){
      console.log('Request failed');
    }  
  });
});
这给了我同样的错误。以及“请求失败消息”。我正在使用jquery3.1.1。我错过了什么?抱歉,如果这是重复的,但我已经阅读了这里的问题,还没有找到答案


这询问了访问控制的基本概念。这家伙还说他不想使用jsonp。我想将jsonp格式与$.getJSON格式一起使用,但不确定它为什么不起作用。

在jQuery.ajax中,您有一个名为crossDomain的设置。默认情况下为false以避免CORS,将其设置为true以使用ajax启用CORS调用


更多信息:

找到了答案,我不得不将url调整为http://api.forismatic.com/api/1.0/?method=getQuote&lang=en&format=jsonp&jsonp=? 而且它工作了

可能与@techouse的问题相同,该问题处理的是本地json文件中的$.getJSON。@在问题的结尾,该人说他不想使用JSONPDOOS,该服务实际上支持JSONP吗?如果不设置callback,getJSON就不会是JSONP,callback只会强制同一原始请求的跨域行为。URL不是同一来源,因此不会产生任何影响。
$(document).ready(function(){
  $('#new-quote').click(function(){
    var url = 'http://api.forismatic.com/api/1.0/?format=jsonp&jsonp=_';
    $.getJSON(url).done(update).fail(err);
    function update(response){
      console.log(response);
    }
    function err(jqxhr, textStatus, err){
      console.log('Request failed');
    }  
  });
});