【问题标题】:how to prevent the browser from requesting the assets come from the ajax response如何防止浏览器请求资产来自ajax响应
【发布时间】:2016-05-08 05:45:35
【问题描述】:

这可能是一个愚蠢的问题,但请考虑到我是网络新手。

我使用 jquery $.ajax 制作了一个 ajax,然后我将响应放在当前页面上的 <div> 中,一旦我这样做,浏览器就会对 ajax 响应中存在的所有资产发出请求。

例如:这是来自 ajax 的简单响应

   this is a plain text response from my php server
   <div>
   <p> this is the important response,(some value)</p>
   <image src="NOT_important_image.png"></image>
  </div>

如何防止客户端浏览器请求图片?

我试图做出 PHP 响应 header('Content-Type: text/plain; charset=utf-8'); 希望浏览器将响应作为纯文本而不是 html 来处理,但它仍然请求图像。

我可以从服务器 PHP 中删除图像,但我必须使用一些客户端工具在客户端执行此操作(例如:javascript

【问题讨论】:

    标签: javascript html ajax


    【解决方案1】:

    这与 PHP 或服务器返回的 headers 无关,但是当你将这个 html-sn-p 包含到 DOM 中时,浏览器会尝试渲染它。

    在您的情况下,如果它包含一个 img-tag 并设置了 src-attribute,它将尝试获取内容,以便能够将其显示给用户。

    从 html 中删除 img-tag,或者将数据作为 JSON 对象发送,当您想在页面上呈现它时,可以使用它来填充正确的 html。

    【讨论】:

    • Remove the img-tag from the html 您的意思是在将其发送到客户端之前将其从 php 文件中删除吗?或者有办法在它到达客户端之后和浏览器请求它之前删除它?..谢谢
    • AFAIK 除了在 将其转换为 DOM 元素之前操作 HTML 字符串之外,无法在客户端将其删除。如果可以避免从服务器设置“src”属性,最好使用data-src
    • @Alnitak 何时转换为 DOM?是当我把它放在页面上的容器 div 中时,比如$("#container_div")[0].innerHTML = response
    • 是的 - 仅通过 AJAX 下载内容并将其存储在字符串中不足以触发资产加载
    • @Alnitak 非常感谢,我在将其添加到 DOM 之前从响应字符串中删除了它,它按您说的那样工作
    猜你喜欢
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 2016-09-14
    • 1970-01-01
    相关资源
    最近更新 更多