ajax 图像搜索 API (Google) 中的跨源域阻止
Cross Origin Domain Blocking in ajax Image Search API (Google)
我是 ajax 的新手。我尝试使用 ajax get 方法进行 Google 图像搜索(已弃用 API)。出于某些原因,我的客户更喜欢弃用 API 而不是自定义搜索。当我提出请求时,它说
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://ajax.googleapis.com/ajax/services/search/images?v=1.0&rsz=8&start=0&imgsz=xlarge,large&q=apple. This can be fixed by moving the resource to the same domain or enabling CORS.
但是当我通过浏览器调用它时 url 它响应完美。
我的ajax请求
$.ajax({
type : "GET",
url : "https://ajax.googleapis.com/ajax/services/search/images?v=1.0&rsz=8&start=0&imgsz=xlarge,large&q=apple",
beforeSend : function(xhr) {
xhr.setRequestHeader('Referer', 'http://www.mydomainexample.com');
},
success : function(result) {
console.log(result)
},
error : function(error) {
console.log(error)
}
})
如有错误请见谅。请帮帮我。
Cross-Origin Request Blocked
就是这样,这是一个防止从源以外的地方获取源的策略。你实际上是在伪造 XMLHttpRequest HTTP Referer Header
。有了这个 :
xhr.setRequestHeader('Referer', 'http://www.mydomainexample.com');
并且您不得欺骗引荐来源网址,因为它们是安全模型的重要组成部分。
至少你要找的是跨域资源共享
在此处阅读有关 CORS
的信息:http://enable-cors.org/server.html
啊,CORS。这么多奇怪的错误的来源。
引擎盖下实际发生的是预检 OPTIONS 请求,其中包含一个 Origin header。此 Origin 是您当前所在的域和协议。服务器 returns 一组 CORS headers(Access-Control-Allow-Origin 和 co),然后告诉浏览器是否应该允许它们完成请求。
如果 Origin 和 CORS headers 不匹配,它会抛出您遇到的错误。在浏览器中没有办法解决这个问题,如果你真的想让它工作,你将不得不代理 API。
我是 ajax 的新手。我尝试使用 ajax get 方法进行 Google 图像搜索(已弃用 API)。出于某些原因,我的客户更喜欢弃用 API 而不是自定义搜索。当我提出请求时,它说
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://ajax.googleapis.com/ajax/services/search/images?v=1.0&rsz=8&start=0&imgsz=xlarge,large&q=apple. This can be fixed by moving the resource to the same domain or enabling CORS.
但是当我通过浏览器调用它时 url 它响应完美。
我的ajax请求
$.ajax({
type : "GET",
url : "https://ajax.googleapis.com/ajax/services/search/images?v=1.0&rsz=8&start=0&imgsz=xlarge,large&q=apple",
beforeSend : function(xhr) {
xhr.setRequestHeader('Referer', 'http://www.mydomainexample.com');
},
success : function(result) {
console.log(result)
},
error : function(error) {
console.log(error)
}
})
如有错误请见谅。请帮帮我。
Cross-Origin Request Blocked
就是这样,这是一个防止从源以外的地方获取源的策略。你实际上是在伪造 XMLHttpRequest HTTP Referer Header
。有了这个 :
xhr.setRequestHeader('Referer', 'http://www.mydomainexample.com');
并且您不得欺骗引荐来源网址,因为它们是安全模型的重要组成部分。
至少你要找的是跨域资源共享
在此处阅读有关 CORS
的信息:http://enable-cors.org/server.html
啊,CORS。这么多奇怪的错误的来源。
引擎盖下实际发生的是预检 OPTIONS 请求,其中包含一个 Origin header。此 Origin 是您当前所在的域和协议。服务器 returns 一组 CORS headers(Access-Control-Allow-Origin 和 co),然后告诉浏览器是否应该允许它们完成请求。
如果 Origin 和 CORS headers 不匹配,它会抛出您遇到的错误。在浏览器中没有办法解决这个问题,如果你真的想让它工作,你将不得不代理 API。