【问题标题】:Send html from server to ajax call in IE9将html从服务器发送到IE9中的ajax调用
【发布时间】:2013-07-27 22:19:00
【问题描述】:

您好,我想将 html 响应发送回 ajax 调用,并且在 IE9 及更低版本之外一切正常

问题是

当我从服务器发送这个时

$response = array("<p>hello</p>");
echo json_encode($response);

ajax 调用接收这个

["<p>hello&lt;\/p&gt;"]</p> 

带有错误信息:

script1014 无效字符

它在末尾添加了额外的结束 p 标签。在其他浏览器中它工作正常

IE10 示例:

["<p>hello<\/p>"] 

注意:我使用的是 jQuery 表单插件。

【问题讨论】:

    标签: ajax json internet-explorer-9


    【解决方案1】:

    您应该说您正在将 html 回显到 json 编码中的 html 标头中。好吧,在您的最终回显前面添加这一行 - header('content-type: application/json');

    header('content-type: application/json');
    echo json_encode($response);
    

    未测试希望它能解决您的错误

    【讨论】:

    • 感谢您的建议,但此警报下载窗口用于下载整个文件。
    • 只有当您尝试将框架直接导航到目标 URL 时,它才会下载文件。如果您使用 XHR 对象或 SCRIPT 标记请求它,则 JSON 将被浏览器静默使用。
    • 你能给我举个例子吗?
    【解决方案2】:

    其实拉姆说的是对的。

    在 Internet Explorer 中,它经常下载文件而不是在浏览器中查看它们。如果您要在 Firefox 或 Chrome 中测试代码,它们会将 JSON 显示为正确的结果。

    这段代码确实工作:

    <?php
    $response = array("<p>hello</p>");
    header('content-type: application/json');
    echo json_encode($response);
    ?>
    

    【讨论】:

      猜你喜欢
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多