【发布时间】:2015-12-17 22:56:41
【问题描述】:
我有两个代码sn-ps:
$.getJSON("https://noembed.com/embed", {"format": "json", "url": input.val()}, function (data) {
// work with data
});
第二个:
$.getJSON("https://www.youtube.com/oembed", {"format": "json", "url": input.val()}, function (data) {
// work with data
});
第一个会成功,但第二个不会。他们都是从http://localhost:8080/myapp/page发送的。为什么同源策略不允许两个请求? (其实是浏览器的问题)。
【问题讨论】:
-
跨域资源共享
-
有些服务器允许浏览器进行跨源请求,有些则不允许。见CORS。
-
@jfriend00 所以区别在于 youtube 不包含 Access-Control-Allow-Origin 标头?
-
是的。可能涉及多个 CORS 标头,因此要么它们都不存在,要么 YouTube 缺少此特定操作所需的东西。但是,关键是服务器决定它是否要允许来自浏览器的跨源操作,因此您的两个服务器在这方面提供了不同的功能。
-
@jfriend00 感谢您的回复!如果您将此作为答案-我将很乐意接受。另外,也许您有解释为什么 youtube 不允许此类请求?
标签: javascript ajax cross-domain same-origin-policy cross-domain-policy