javascript - 来自跨域的图像在 HTML 中显示正常,但 ajax 调用同一图像从浏览器控制台失败

标签 javascript jquery html ajax google-chrome-devtools

我们的静态内容服务器正在为各种门户网站提供图像(对我来说是黑匣子)。在门户网站上,所有图像都很好,即使它们来自不同的域(假设静态服务器相应地设置了 http header )。但是,如果我尝试通过 ajax 调用(使用 jquery 或 xmlhttp)使用浏览器控制台访问同一图像,则会出现跨域调用失败错误(即请求成功但浏览器拒绝响应)。下面是一个简单的jsfiddle来显示问题

JSfiddle for image coming in dom but ajax call failing

/*Image tag works fine*/
<img src='https://casinogames.bwin.com/htmllobby/images/gameicon/melonmadness.jpg' /> 
/*ajax call fails*/

var a = $.ajax(' https://casinogames.bwin.com/htmllobby/images/gameicon/melonmadness.jpg');

我验证了请求/响应 header ,它们在两种情况下完全相同。我想知道图像标签请求和ajax请求有什么具体区别吗?我尝试了 IE 控制台和 Chrome 控制台,结果相同。

最佳答案

I want to know if there is any specific difference between request from image tag and ajax?

请求不会有任何明显的不同,但无论采用哪种方式,当请求发生时,浏览器都不会向 JavaScript 提供图像数据是一个跨域的。

从 img 元素向用户显示图像不会带来安全风险。

让第三方编写的 JavaScript 访问另一台服务器的数据存在安全风险。

关于javascript - 来自跨域的图像在 HTML 中显示正常,但 ajax 调用同一图像从浏览器控制台失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25862201/

相关文章:

JavaScript $.each 函数

jquery - .each() 与 for 循环?需要迭代添加字幕

javascript - Jquery Cycle 插件问题 - 更改和样式链接

html - 当整个菜单 div 有边框底部时,悬停时在菜单中链接的边框底部

javascript - 从 jQuery 流程图中打印出来

javascript - 如何在javascript中将单引号添加到将在 Node JS中作为sql插入命令执行的字符串

javascript - 文本区域事件不起作用 - jQuery

html - 我的专栏与使用 float :right 不相反

javascript - RxJS Node 在订阅下一个序列之前等待 observable 完成

javascript - 按提交 html 后显示图像