我试图在jQuery脚本中从远程域(Zencoder视频编码API)检索JSON格式的数据。当脚本运行时,它返回代码200,但Firebug在地址上显示错误(粗体红色突出显示,带有X的圆圈),响应为空。
以下是与此相关的jQuery脚本:
var checkStatus = function(jobID) {
var url = 'https://app.zencoder.com/api/v2/jobs/' + jobID + '/progress.json?api_key=asdad3332d';
$.getJSON(url, function(data) {
if (data.state == 'processing') {
//Do things to indicate job is still going
//Repeat this function to check status again
setTimeout(function() {
checkStatus(jobID);
}, 6000);
} else if (data.state == 'finished') {
//Do some stuff
} else if (data.state == 'failed') {
//Show errors, do other stuff
}
});
};
以下是JSON返回的示例。
{"outputs":[{"id":18492554,"state":"finished"},{"id":18492553,"state":"finished"},{"id":18492555,"state":"finished"}],"input":{"id":12437680,"state":"finished"},"state":"finished"}
最后,这是Firebug返回的响应头:
Response Headers
Cache-Control private, max-age=0, must-revalidate
Connection close
Content-Length 174
Content-Type application/json; charset=utf-8
Date Thu, 09 Feb 2012 16:06:13 GMT
Etag "48f2d50a838e0e1e433f7c0ba197e787"
Server ZenServer 0.1.0
X-Zencoder-Rate-Remaining 4999
这里有任何帮助。抓住我的头
文档 这是关于获取工作进度的API文档,这正是我想要做的。 https://app.zencoder.com/docs/api/jobs/progress
答案 0 :(得分:1)
您需要使用jsonp进行跨域请求,服务器需要能够接受jsonp请求并正确回答。
$.ajax({
url: 'https://app.zencoder.com/api/v2/jobs/1234/progress.js?api_key=asdf1234',
dataType: 'jsonp',
success: function(data){// your code here
}
});
jQuery会自动附加callback=blah
parm。
请在此处查看dataType部分:http://api.jquery.com/jQuery.ajax/
success函数中的data
parm将包含对象(不仅是JSON字符串,而是JSON字符串表示的对象)。
答案 1 :(得分:0)
您可以将callback=?
附加到网址查询吗?这应该有效,假设服务器支持JSONP。