我是网页设计新手,目前正在开发一个使用Sonarr管理媒体库的项目。我想要一个带有表格的网站,要求添加电视节目。为了实现这一点,我尝试使用Sonarr API但遇到了一些麻烦。我的代码如下:
注意:这是一个测试代码,用于确保API调用有效,并且它所做的只是返回Sonarr的状态
的JavaScript
function sonarr() {
$.ajax({
url: 'http://' + document.domain + ':8989/api/system/status/',
headers: {
"X-Api-Key": "/*MY API KEY*/"
},
success: function(imdbinfo) {
json = imdbinfo;
var str = JSON.stringify(json, undefined, 2);
$("#one").text(str);
},
error: function(imdbinfo) {
json = imdbinfo;
var str = JSON.stringify(json, undefined, 2);
$("#one").text(str);
}
});
}
HTML
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<form id="f1" onsubmit="sonarr(); return false;" autocomplete="off" method="get">
<br>
<input type="tvshow" name="tvshow" id="tvshow">
<br>
<input type="submit" id="submitBtn" class="button-primary" style="margin:15px" value="Request">
</form>
<div id="one"></div>
<!-- empty div to display result -->
</body>
</html>
此API调用应返回类似于:
的内容 {
"version": "2.0.0.1121",
"buildTime": "2014-02-08T20:49:36.5560392Z",
"isDebug": false,
"isProduction": true,
"isAdmin": true,
"isUserInteractive": false,
"startupPath": "C:\\ProgramData\\NzbDrone\\bin",
"appData": "C:\\ProgramData\\NzbDrone",
"osVersion": "6.2.9200.0",
"isMono": false,
"isLinux": false,
"isWindows": true,
"branch": "develop",
"authentication": false,
"startOfWeek": 0,
"urlBase": ""
}
但我得到了这个回报(在Chrome和Firefox上):
{ "readyState": 0, "responseText": "", "status": 0, "statusText": "error" }
但在Safari上,我得到了预期的结果。
我查看了Chrome开发者工具上的网络日志,并获得了"401 unauthorized" error
。 Firebug给出"Cross-Origin Request blocked" error
。但是,如果我使用www.hurl.it发送请求,它会成功告诉我没有权限或跨域问题。我不知道下一步该做什么。任何帮助,将不胜感激。