我開發了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