我开发了PHP中的Web应用程序来列出我硬盘中的所有电影。我发现了一个网站http://www.deanclatworthy.com/imdb/,它提供了IMDB API。现在我需要使用一些参数向这个URL发出请求。但由于这种跨站请求,我无法成功获得响应。访问基于URL的API
有什么方法可以使用这个API?
我正在本地主机上运行我的应用程序。我在Firefox和Chrome中都进行了测试,得到一个Access-Control-Allow-Origin
错误。
任何帮助表示赞赏。
我开发了PHP中的Web应用程序来列出我硬盘中的所有电影。我发现了一个网站http://www.deanclatworthy.com/imdb/,它提供了IMDB API。现在我需要使用一些参数向这个URL发出请求。但由于这种跨站请求,我无法成功获得响应。访问基于URL的API
有什么方法可以使用这个API?
我正在本地主机上运行我的应用程序。我在Firefox和Chrome中都进行了测试,得到一个Access-Control-Allow-Origin
错误。
任何帮助表示赞赏。
也许代理请求本地服务器端PHP脚本使用套接字,然后将数据中继到您的JavaScript?
您要使用的API支持JSON作为响应类型。这意味着你可以很容易地从JavaScript中获取这个API的数据。下面是一个示例代码(使用jQuery),应该为你工作 -
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<script type="text/javascript">
function imdbapi(data){
var items = [];
$.each(data, function(key, val) {
items.push('<li>' + key + "=>" + val + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
}
$(document).ready(function(){
$.ajax({
url: 'http://www.deanclatworthy.com/imdb/?q=Star+Trek&type=jsonp',
dataType: 'jsonp'
});
});
</script>
</body>
</html>
你能解释一点点。我对此很新。感谢您的回答.. – Vivek
我认为您正在通过JavaScript提出请求。我建议也许应该把参数传递给你的盒子上的php脚本,它使用一个套接字(http://php.net/manual/en/function.fsockopen.php),将来自远程主机api的响应中继给JavaScript 。请求 - >本地php脚本 - >远程主机 - >本地php脚本 - >请求者 – Will