我正试图使用此url发出AJAX
请求http://api.adorable.io/avatars/285/sd我已经将crossDomain设置为true,但每次请求都会失败,并出现此错误。
No 'Access-Control-Allow-Origin' header is present on the requested resource.
无法使用发出请求http://www.api.adorable.io/avatars/285/sd.我怎么了?请帮助
$(document).ready(function(){
$.ajax({
url: "http://api.adorable.io/avatars/285/sd",
type: "GET",
crossDomain: true, // enable this
success: function (data) {
console.log(data);
}
});
});
仅仅在Ajax调用(您正在调用的文件)中设置它是不够的(http://api.adorable.io/avatars/285/sd)需要标头以允许跨域调用。
header('Access-Control-Allow-Origin: *');
将是为PHP添加的代码,以允许所有起源。如果您只想允许特定的域,请将*更改为您的域。
由于您无法控制该URL,因此需要一个好的变通方法。您可以做的是在本地创建一个您控制的PHP文件,该文件使用cURL通过他们的API从adomble.io获取您正在调用的资源,并使用Ajax请求调用本地PHP脚本。然后,您就不必担心Ajax中的跨域问题,一切都会正常工作。为流程增加了少量开销,但这是一个简单的解决方法。