尝试使用jQuery通过API练习提取数据。我看了一些YouTube教程,我基本上只是试图得到一个成功的回复...但我不能让我的生活让它工作..
除了YouTube之外,我还订阅了Codeschool,他们报道了ajax和json,但不幸的是他们没有现实生活中的例子......或者至少还没有。
我使用的API是我的API电影 - http://www.myapifilms.com/imdb.do jsfiddle和代码如下。
我想如果你有自己的代币会更好吗?很多人都提前感谢。
https://jsfiddle.net/oddtbaq6/
var url = 'http://www.myapifilms.com/imdb/idIMDB?title=batman&' + token + '&format=json&language=en-us&aka=0&business=0&seasons=0&seasonYear=0&technical=0&filter=2&exactFilter=0&limit=1&forceYear=0&trailers=0&movieTrivia=0&awards=0&moviePhotos=0&movieVideos=0&actors=0&biography=0&uniqueName=0&filmography=0&bornAndDead=0&starSign=0&actorActress=0&actorTrivia=0&similarMovies=0&adultSearch=0&goofs=0"es=0&fullSize=0&companyCredits=0';
$.ajax(url, {
success: function(data) {
console.log(data);
},
error: function() {
console.log('error');
},
dataType: 'json',
type: 'GET'
});
控制台错误:
XMLHttpRequest无法加载。
否'访问控制 - 允许 - 来源'标头出现在请求的资源上。
Origin' null'因此不允许访问。
答案 0 :(得分:0)
当从浏览器发出AJAX请求时,如果目标API启用CORS,浏览器将仅允许发出请求。这样做是出于安全原因,因此如果网站具有私有API,则无法通过来自其自身以外的域的AJAX请求在浏览器中访问该API。例如,除非yourapi.com将其路由指定为可从其他域访问,否则mywebsite.com无法向yourapi.com发出AJAX请求。
我建议找一个流行的公共API,肯定会启用CORS。您还可以运行自己的服务器来提供客户端代码和自己的API。
答案 1 :(得分:0)
您有CORS问题:
但是,您可以使用https://crossorigin.me/服务。
然后,您应该请求:«https://crossorigin.me/http://www.myapifilms.com/imdb/idIMDB?title=batman&' + token + '&format=json&language=en-us&aka=0&business=0&seasons=0&seasonYear=0&technical=0&filter=2&exactFilter=0&limit=1&forceYear=0&trailers=0&movieTrivia=0&awards=0&moviePhotos=0&movieVideos=0&actors=0&biography=0&uniqueName=0&filmography=0&bornAndDead=0&starSign=0&actorActress=0&actorTrivia=0&similarMovies=0&adultSearch=0&goofs=0"es=0&fullSize=0&companyCredits=0
»。
var url = "https://crossorigin.me/http://www.myapifilms.com/imdb/idIMDB?title=batman&' + token + '&format=json&language=en-us&aka=0&business=0&seasons=0&seasonYear=0&technical=0&filter=2&exactFilter=0&limit=1&forceYear=0&trailers=0&movieTrivia=0&awards=0&moviePhotos=0&movieVideos=0&actors=0&biography=0&uniqueName=0&filmography=0&bornAndDead=0&starSign=0&actorActress=0&actorTrivia=0&similarMovies=0&adultSearch=0&goofs=0"es=0&fullSize=0&companyCredits=0";
答案 2 :(得分:0)
请尝试改变这样。
var url = 'http://www.myapifilms.com/imdb/idIMDB?title=batman&' + token + '&format=json&language=en-us&aka=0&business=0&seasons=0&seasonYear=0&technical=0&filter=2&exactFilter=0&limit=1&forceYear=0&trailers=0&movieTrivia=0&awards=0&moviePhotos=0&movieVideos=0&actors=0&biography=0&uniqueName=0&filmography=0&bornAndDead=0&starSign=0&actorActress=0&actorTrivia=0&similarMovies=0&adultSearch=0&goofs=0"es=0&fullSize=0&companyCredits=0';
$.ajax({
url: 'url',
success: function(data) {
console.log(data);
},
error: function() {
console.log('error');
},
dataType: 'json',
type: 'GET'
});