我正在尝试通过对该URL进行ajax调用来验证图像URL是否仍然保留图像。一个问题是图像服务器在不同的域上,所以我在我的ajax调用中使用crossDomain:true属性。这是我到目前为止所尝试的:
function checkFunc(){
$.ajax({
url: 'https://www.google.co.in/images/srpr/logo11w.png',
dataType: 'image/png',
crossDomain: true,
timeout: 5000,
error: function(e, status, settings){
alert('ERROR: '+JSON.stringify(e));
},
success: function( e, xhr, settings ) {
alert('SUCCESS: '+JSON.stringify(e));
}
});
}
但它不起作用。另外一个问题是图像不限于单一格式,即图像可以是png / jpg / gif或任何其他格式,因此我需要有更广泛的dataType来接受任何类型的图像。
我也试过使用jsonp,但是这给了我错误"拒绝执行脚本,因为它的Mime类型(image / jpeg)不可执行。
编辑:我无法从我的ajax函数运行服务器脚本,而ajax函数又调用跨域页面,如php getcontents
答案 0 :(得分:1)
你可以做一件事,只需要设置Access-Control-Allow-Origin& Access-Control-Allow-Headers
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
如果您只想允许特定域,则可以使用域的特定值而不是*值
来实现答案 1 :(得分:0)
您必须设置图像服务器以允许跨源请求。要做到这一点,你需要在服务器上设置一个标题,如下所示:
Header set Access-Control-Allow-Origin "*"
您可以将*替换为您的特定域名,实际上您应该这样做,否则任何人都可以在您的图像服务器上执行跨源请求。
答案 2 :(得分:0)
这对你有帮助