gpt4 book ai didi

php - JSON 结构不适用于 IE7 (JavaScript)

转载 作者:行者123 更新时间:2023-12-02 05:55:56 25 4
gpt4 key购买 nike

好吧,我是 JSON 的新手,所以如果我的问题有点无知,请原谅我——我的头撞墙太多了,需要一些专家的建议。

我试图获得一个简单的示例,其中 HTML 页面使用 jQuery 的 JSON/AJAX 函数调用示例 PHP 页面,该页面返回一个简单的 JSON 数据结构,然后该页面使用 jQuery 编写其中一个从数据结构到页面的元素。在 FF 工作。在 IE7 中不起作用 arrrggghhhh!

HTML 代码(相关部分):

<script language="javascript" type="text/javascript" src="jquery.js"></script>
<script language="javascript" type="text/javascript">
function testAJAX() {
$.getJSON("test-ajax.php", function(json){
$("#div1").html(json.var1[1]);
});
}
</script>
</head>
<body>
<input type="button" value="test ajax" onclick="testAJAX();" />
<div id="div1"> </div>
</body>

PHP 代码 (test-ajax.php):

<?php
include_once('./json.php');
$output = array('var1' => array('value1a', 'value1b', 'value1c'),
'var2' => array('value2a', 'value2b', 'value2c'));

header("Content-type: text/plain");
echo json_encode($output);
?>

json.php 有我正在使用的 json_encode() 函数 - 我从 http://us2.php.net/manual/en/function.json-encode.php 得到它.我正在使用它,因为我没有 PHP5,而且我的系统管理员不会安装任何对它的支持。直接在浏览器中查看 test-ajax.php 会打印出如下所示的序列化 JSON 结构:

{"var1":["value1a","value1b","value1c"],"var2":["value2a","value2b","value2c"]}

这似乎是一个有效的 JSON 结构。在我的 JavaScript 中,我尝试通过以下方式引用 'value1b':json.var1[1]。 FF 处理得很好。 IE7 说这是未定义的。

我做错了什么?我如何像这样传输一个二维数组

array('var1' => array('value1a', 'value1b', 'value1c'), 
'var2' => array('value2a', 'value2b', 'value2c'));

通过 JSON/AJAX?或者这是不可能的?

最佳答案

好的,明白了。根本不是 JSON/JavaScript 问题,而是缓存问题。当我开发这个时,当 test-ajax.php 不工作或正在生成不同的 JSON 结构时,我必须首先测试 IE7,然后我将 test-ajax.php 更改为上面发布的内容,并更新了我的 JavaScript,但 IE7 是使用它最初从 test-ajax.php 收到的缓存版本。我对此进行了测试 - 如果我清除 IE7 中的缓存,它会起作用,然后如果我更改 JSON 结构中的值(但不是结构本身),IE7 会继续使用缓存的 JSON 结构。

解决方案:

我加了

header("Cache-Control: no-cache, must-revalidate");
header("Expires: 0");

在我的 test-ajax.php 页面中,现在 IE7 在进行 AJAX 调用时正在正确检查服务器是否有更新版本的 test-ajax.php。

谢谢大家!

关于php - JSON 结构不适用于 IE7 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/588413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com