2016-07-15 94 views
0

我试图检索使用jQuery的阿贾克斯()从API的数据,但它并没有与此实行工作:AJAX调用API不工作

$.ajax('http://api.forismatic.com/api/1.0/?method=getQuote&format=json').done(function(data) { 
 
    alert(1); 
 
    alert(JSON.stringify(data)); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

运行后代码警报功能不起作用,所以我认为成功回调函数不起作用,但我不知道为什么。

+3

你可以看到在控制台的任何错误? – Rayon

+0

在控制台中没有错误,只是没有调用alert函数 –

+0

您应该尝试为这个确切原因为ajax调用捕获错误:) –

回答

3

检查服务器响应标头后,没有Access-Control-Allow-Origin,这表示服务器不允许跨源访问。因为你犯了一个跨源的HTTP请求,您的请求将被按照相同的起源浏览器被拒绝:

的同源政策限制如何文档或脚本 一个起源装载的与另一来源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制 。

看看你的控制台,您将看到以下错误(铬):

的XMLHttpRequest无法加载 http://api.forismatic.com/api/1.0/?method=getQuote&format=json。否 “访问控制 - 允许来源”标题出现在请求的 资源中。因此,'http://s.codepen.io'因此不允许 访问。

有关详细信息,请参阅:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

+0

非常感谢! –

+0

不客气;) –

+0

所以你说,由于相同的源策略,jsfiddle不可能从CDN请求一个Jquery模块? –