账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    试用exif.js引入本地图片报了一个错,这是跨域的错?本地为什么涉及到跨域。。
    22
    0

    exif.js:380 XMLHttpRequest cannot load file:///C:/Users/pjy/Desktop/exif-js/exif-js-master/example/dsc_09827.jpg. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • Exif.js 是一个 JavaScript 库,用于解析和获取 JPEG、TIFF、PNG、GIF、BMP 等格式的图像信息。虽然 Exif.js 的主要功能是读取和解析图片的 EXIF 标签,但它并不直接支持跨域访问。这是因为 Exif.js 是在浏览器环境中运行的,而浏览器的跨域支持是在 HTTP 链接上实现的,而不仅仅是应用层。

      在图片访问和解析的 HTTP 请求中,浏览器会发送一个 HTTP 请求到服务器,包含诸如 "Content-Type"、"Accept"、"Origin"、"Referer" 等信息,这些信息告诉服务器请求的请求头和请求体类型,以及请求来自哪个域名或协议。

      如果图片的源是一个来自不同域(例如,本地的服务器和远程的服务器)的 HTTP 请求,浏览器需要将这些信息转换为一个可被服务器接受的格式(例如,JSON),才能将图片内容发送回客户端。这涉及到一个称为 JSONP(JSON with Padding)的协议,该协议允许客户端通过在服务器端设置一个请求方法为 "script",并携带一个名为 "callback" 的参数来实现跨域请求。

      例如,假设服务器端服务器地址为 "http://example.com",并允许从 "http://localhost:8080" 端口发起的跨域请求,那么服务器可以设置一个名为 "callback" 的参数,如下所示:

      javascript callback(data);

      在客户端,客户端浏览器首先发送一个 HTTP GET 请求到服务器的 "http://example.com" 端口,携带名为 "callback" 的参数。服务器响应给客户端的响应将包含一个 JSON 对象,其中包含请求头和请求体中的信息,以及 JSONP 的 "data" 属性,即图片的内容。客户端在接收到响应后,解析 JSON 对象并执行相应的操作,如读取图片的 EXIF 标签。

      如果客户端在跨域请求中使用了 Exif.js 来解析图片的 EXIF 标签,但由于浏览器不支持 JSONP,Exif.js 将无法解析本地图片,从而无法获取图片的 EXIF 标签。因此,本地图片访问和解析可能会涉及到跨域问题,但这种问题通常通过 JSONP 或 CORS(Cross-Origin Resource Sharing)等技术来解决。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部