如何获得通过AJAX从远程URL内容?
jQuery的AJAX请求是块因为跨源
控制台日志
跨来源请求阻止:同源策略不允许在http://www.dailymotion.com/embed/video/x28j5hv读取远程资源。 (原因:CORS头“访问控制允许来源”缺失)。
跨来源请求阻止:同源策略不允许在http://www.dailymotion.com/embed/video/x28j5hv读取远程资源。 (原因:CORS请求失败)。
码
$.ajax({
url: "http://www.dailymotion.com/embed/video/x28j5hv",
type:'GET',
contentType: "html",
crossDomain:true,
success: function(data){
//$('#content').html($(data).html());
var src = $(data).html();
alert(src);
return false;
}
试着在你的Ajax调用使用JSONP
。它会绕过同源策略。
http://learn.jquery.com/ajax/working-with-jsonp/
例如尝试
$.ajax({
url: "https://api.dailymotion.com/video/x28j5hv?fields=title",
dataType: "jsonp",
success: function( response ) {
console.log( response ); // server response
}
});
没有什么,你可以在你的最终(客户端)做的。您不能启用跨域调用自己,源(dailymotion.com)必须启用COORS这个工作。
你真的可以做的唯一的事情就是创建一个服务器端代理脚本,它可以实现这个要求。您是否使用项目中的任何服务器端脚本? PHP,Python和ASP.NET等?如果是这样,你可以创建一个服务器端的“代理”脚本,这使得HTTP调用位DailyMotion和返回响应。然后调用该脚本从你的JavaScript代码,因为该服务器端脚本是在同一个域脚本代码,COORS将不会是一个问题。
尝试用跨域卷曲请求。
如果您正在通过第三方API或通过跨域获取数据,它总是建议使用卷曲脚本(服务器端),这是更安全的。
我总是喜欢卷曲脚本。