Internet Explorer 和 JQuery/AJAX $.get() 不工作

发布于 2025-01-01 09:31:51 字数 1060 浏览 0 评论 0原文

我试图让 IE8(和其他 IE)使用一个使用 JQuery/AJAX $.get() 方法显示外部 php 文件中的值的页面。 Firefox、Chrome 和 Safari 都工作正常。我把我的大问题归结为这个小例子,

这是 javascript 代码:

function get_number () {
    $.get(
        "test5.php",
        {},
        function (response) {
             var number = (response.number);
             $("#number_display").html(number);
        },
        "json"
    )
}

$(document).ready(function(){
    $('#get').click(function(){
       get_number ();
    });
})

它插入到以下 html 元素中:

<body style='text-align:center;'>
<p>Number = <span id='number_display'></span></p>
<button id='get'>Get Number</button>

这是外部 php 代码:

$num = rand (1,10);
$result = array();
$result['number'] = $num;
echo json_encode($result);

我的 jquery 库源是 http ://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js,如果有的话。

预先非常感谢您的帮助!

I am trying to get IE8 (and other IEs) to work with a page that uses the JQuery/AJAX $.get() method to display a value from an external php file. Firefox, Chrome and Safari all work fine. I've boiled my big problem down to this small example

Here's the javascript code:

function get_number () {
    $.get(
        "test5.php",
        {},
        function (response) {
             var number = (response.number);
             $("#number_display").html(number);
        },
        "json"
    )
}

$(document).ready(function(){
    $('#get').click(function(){
       get_number ();
    });
})

and it inserts into the following html element:

<body style='text-align:center;'>
<p>Number = <span id='number_display'></span></p>
<button id='get'>Get Number</button>

Here is the external php code:

$num = rand (1,10);
$result = array();
$result['number'] = $num;
echo json_encode($result);

My jquery library sourse is http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js, if that matters.

Thanks so much in advance for your help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自此以后,行同陌路 2025-01-08 09:31:51

你少了两个分号,IE 会卡住。我还格式化了您的代码并进行了一些其他调整:

function get_number() {
    // Append a "random" number to the query string to prevent caching:
    $.get("test5.php", { num: Math.random() }, function(response) { 
    // If you don't want to pass any data, you can omit the "data" parameter
        var number = response.number;
        $("#number_display").html(number);
    }, "json"); // <--- 
}

$(document).ready(function() {
    $('#get').click(function() {
        get_number();
    });
}); // <---

编辑:在发表评论后,您很可能遇到缓存问题 - IE 可能会积极缓存 GET请求。要解决此问题,您可以在请求中附加一个参数,强制 IE 再次访问服务器

You're missing two semicolons, which IE will choke on. I've also formatted your code and made a few other tweaks:

function get_number() {
    // Append a "random" number to the query string to prevent caching:
    $.get("test5.php", { num: Math.random() }, function(response) { 
    // If you don't want to pass any data, you can omit the "data" parameter
        var number = response.number;
        $("#number_display").html(number);
    }, "json"); // <--- 
}

$(document).ready(function() {
    $('#get').click(function() {
        get_number();
    });
}); // <---

Edit: After your comment, you most likely have a caching issue--IE can be aggressive in caching GET requests. To get around this you could append a parameter to your request that will force IE to hit the server again.

メ斷腸人バ 2025-01-08 09:31:51

与 IE 中的 load() 相同。
我相信引用两句话也可以。

Same thing with load() in IE.
I believe two quotes will do too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文