JQuery $ .ajax,$ .get问题

时间:2014-01-30 19:01:23

标签: php jquery ajax

我有一个 $(“。clickButton”)。点击(功能(),使用 $。ajax 加载页面并将结果返回给DIV。这在Chrome,FireFox中完美运行和Safari,但不是IE11。

$.ajax({
    url: "go.php?ab=1",
        success: function(data, textStatus, xhr) {
        $("#res").html(data);       
   }
});

作为一项快速测试,我尝试了以下操作,并再次使用Chrome,FireFox和Safari,但不适用于IE11。

$.get('go.php?ab=1', function( jqXHR, textStatus, errorThrown )
{ alert(jqXHR); });

返回的日期是文字,可以是确定错误。 go.php正在运行多个命令行脚本,并根据运行时传递的变量进行调整。

所有这一部分都很好,它在3个浏览器中运行良好,但不是IE11。

当页面首次在IE中加载时,它可以运行,它似乎运行go脚本并返回结果。但任何后续点击返回即时和go.php页面都不会被调用。显示结果但它们似乎是第一个返回结果的进程。就像结果和进程已被缓存一样。

任何想法如何使其在IE中的工作与其他人一样?

2 个答案:

答案 0 :(得分:3)

  

就好像结果和进程已被缓存一样。

这是可能的。如果要向同一URL发送多个GET请求,则浏览器可能会缓存结果。如果您想验证这一点,可以单击按钮,清除缓存而不重新加载页面,然后再次单击该按钮以查看它是否按预期工作。

为防止缓存GET请求,您可以添加

cache: false

每个请求的$ .ajax选项,或者您可以使用

为所有请求禁用它
$.ajaxSetup({ cache: false });

答案 1 :(得分:1)

我不知道我们是否遇到过同样的问题,但就在早些时候我尝试get the responce data go.php并将其添加到div

我的代码是这样的。

<强>的onClick:

<script type="text/javascript">
    function gimmeData(){

                    var url = 'go.php';
                    $.ajax({
                    type: "GET",
                    url: url,
                    data:{'something':'1'},
                    success:function(results)
                    {   
                        $('#add_data').html(results);
                    }
                    });
                }
</script>

这将提供go.php?something=1网址。

<强> HTML:

<input type="button" onclick="gimmeData();" value="clickme!" />
<div id="add_data"></div>

按钮点击

$('a').on('click', function(){
    var a = $(this).data('first');
    var b = $(this).data('second');
    alert(a + ":" + b);
});

<强> HTML:

<a id="button" href="#" data-first="something" data-second="something2" onclick="click();">click me</a>

使用data()功能。见http://api.jquery.com/data/

或者您可以$(this).attr("data-value")获取data-attribute

的值

JSFiddle sample.