3

这是一个有问题的示例页面:

http://estorkdelivery.com/template/view/69

我们的网站提供模板预览。一旦您输入文本信息并从字段中跳出标签,该网站就会提供图像的更新预览,并将文本添加到字段中。

当服务器返回此图像时:

http://estorkdelivery.com/file/preview/verify_token:149505eb811f8856a12ec6e71e2932f082a97edf

它在我的控制台中显示以下消息:

资源解释为图像,但使用 MIME 类型 text/html 传输:http ://estorkdelivery.com/file/preview/verify_token:149505eb811f8856a12ec6e71e2932f082a97edf

试图涵盖所有基础,我已经验证服务器设置了以下 MIME 类型:

应用程序/x-javascript .js

图片/jpeg jpeg jpg jpe

图片/png

我不确定为什么会这样。我想知道是否有人可以帮助我解决问题。有任何想法吗?

谢谢!

2012 年 4月 27 日更新- 我的问题已被标记,但我已经对这个问题进行了研究。如果这个问题不值得回答,是否有人至少可以指出我需要继续进行故障排除的方向?我不会轻易提出问题,而且我在 StackOverflow 上阅读了很多类似的问题,发现自己仍然遇到同样的问题。没有礼貌的解释就被降价是令人沮丧的。谢谢。

4

1 回答 1

0

老实说,我不认为这是服务器设置问题。当您的 AJAX 请求返回时verify_token,我可以使用它从您的服务器获取图像。然后,使用 JavaScript,我可以在页面上显示新的预览。

这部分看起来很奇怪:

new $._iframeUpload(form, {
  success: function(response)
  {
    $('.preview').attr('src', 'http://estorkdelivery.com/file/preview/verify_token:' 
        + response.verify_token);
    var image = new Image();
    image.src = 'http://estorkdelivery.com/file/preview/verify_token:' 
        + response.verify_token;
    image.onload = function()
    {
      $queue--;
      if ($queue <= 0)
        $('.updating').hide();
    };
  }
}); 

我真的不明白为什么在编辑标签后会创建一个 Image 对象。img我会将您的 JavaScript 更改为如下所示(以便onload回调起作用):

new $._iframeUpload(form, {
  success: function(response)
  {
    var image = new Image();
    image.onload = function()
    {
      $('.preview').attr('src', image.src);
      $queue--;
      if ($queue <= 0)
        $('.updating').hide();
    };
    image.src = 'http://estorkdelivery.com/file/preview/verify_token:' 
        + response.verify_token;
  }
}); 

试试看,告诉我它是否有帮助。

小怪癖

这并不是真正回答您的问题,但它会影响整个图像加载过程的工作方式。您的预览是 700 x 500,但您从服务器返回的新预览是 2900 x 2100!这使您的 AJAX 加载时间比初始页面加载时间长得多。您可能会考虑在服务器端缩小它的大小,然后将其传输到浏览器。

于 2012-05-22T20:04:51.687 回答