我只是在写一个小小的 Instagram 应用程序。事实上,当我尝试从 JS 中的这个 url 获得响应时:
https://api.instagram.com/v1/tags/search?q=money&client_id=f40dfb17ddd144598d562a6f58179006
但由于某种原因,我没有得到答案,也没有任何错误。如果我在浏览器中调用 url,我会得到 JSON 格式的答案。
这是我的小提琴
我只是在写一个小小的 Instagram 应用程序。事实上,当我尝试从 JS 中的这个 url 获得响应时:
https://api.instagram.com/v1/tags/search?q=money&client_id=f40dfb17ddd144598d562a6f58179006
但由于某种原因,我没有得到答案,也没有任何错误。如果我在浏览器中调用 url,我会得到 JSON 格式的答案。
这是我的小提琴
由于您计划进行跨域请求,因此您应该通过添加&callback=?
到 URL 的末尾来尝试 API 的 JSONP 变体
https://api.instagram.com/v1/tags/search?q=money&client_id=f40dfb17ddd144598d562a6f58179006&callback=?
您不能访问与当前域(进行 ajax 调用的地方)不同的域。它会给你跨域错误 Ajax 调用只能在同一个域上工作!
解决方法是在您的服务器中调用一个页面,该页面将对 Instagram 服务器进行远程调用,并对该页面进行 ajax 调用:php 示例 - 在您的服务器 page.php 中:
$url = 'https://api.instagram.com/v1/tags/search?q=money&client_id=f40dfb17ddd144598d562a6f58179006';
$content = file_get_contents($url);
echo($content); //no need to json_encode cause the response returning a json already!
并在您的客户端代码中调用 page.php (它在您的服务器中 - 所以它是同一个域):
$.getJSON("page.php",function(json){
alert(json.data);
});