我只是想用jquery做一个简单的请求,但它不会起作用。 我不知道为什么。你能说我做错了吗?
有代码。
$(document).ready(function() {
$.ajax({
type: "GET",
url: "http://api.asdasdasdsdsad.com",
timeout: 5000,
dataType: "json",
success: function(data) {
$.each(json, function(i, item) {
$('.galleryThreeColumnList photoSwipe').append('<li><a href="' + item.photo + '"><img src="' + item.thumbnail + '" alt="' + item.id + '" /></a></li>')
});
},
error: function(data) {
console.log(data);
}
});
});
Greez Edocsyl
答案 0 :(得分:2)
这是因为您尝试访问的网站与您的网站不同。
Javascript有Same origin policy,您无法从其他域名的网站发出ajax请求。
答案 1 :(得分:1)
通常无法使用AJAX来请求远程页面。正如chrome开发者控制台所暗示的那样,
XMLHttpRequest cannot load http://api.elublu.com/. Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.
理论上可以使用CORS来请求远程页面,但如果在此api中启用了CORS,您会看到
Access-Control-Allow-Origin:*
在响应标题中。
答案 2 :(得分:0)
success: function(data) {
这实际上应该如下吗?您正在使用名为json的变量,它未被声明...
success: function(json) {
答案 3 :(得分:0)
就像他们中的很多人已经提到的那样,这是一个可能导致该问题的跨域调用。
您可以使用不具有相同原始政策限制的JSONP(不确定这是否符合您的要求)
试试这个:
$(document).ready(function() {
$.ajax({
type: "GET",
url: "http://api.asdasdasdsdsad.com",
timeout: 5000,
dataType: "jsonp",
success: function(data){
$.each(data, function(i, item){
$('.galleryThreeColumnList photoSwipe').append('<li><a href="' + item.photo + '"><img src="' + item.thumbnail + '" alt="' + item.id + '" /></a></li>')
});
},
error: function(data){
console.log(data);
}
});
});