jQuery ajax不适用于最新版本的chrome

时间:2011-02-09 02:53:46

标签: javascript ajax google-chrome jquery

嘿伙计们, 我有一个简单的ajax请求有点问题。我无法弄清楚为什么jquery ajax方法不适用于最后一个版本的chrome ...在ff上工作很好,因为在Opera上但在chrome上我没有得到任何响应而且没有错误。这是我的js代码:

function load(idno){
    var url = 'index.php';
    $.get(
        url,
        {
            pagina:"ajax",
            show:"cars",
            brand:idno
        },
        function(data) { document.getElementById("model").innerHTML=data },
        "html"
    );
}

3 个答案:

答案 0 :(得分:3)

您是不是只使用jQuery.load()?例如

$('#model').load('index.php', {
    pagina: 'ajax',
    show: 'cars',
    brand: idno
});

猜测一下,我说问题出在innerHTML电话上。更健壮的方法是使用jQuery.html(),例如

function(data) { $('#model').html(data); }

修改

刚刚开始测试并且工作正常

<?php
// test.php
echo '<pre>', print_r($_REQUEST, true), '</pre>';

<!-- test.html -->
<!DOCTYPE html>
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
      <div id="model">
          Default text
      </div>
      <p><button id="fetch-data">Fetch Data</button></p>
      <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
      <script type="text/javascript">
          jQuery(function($) {
              $('#fetch-data').click(function() {
                  $('#model').load('test.php', {
                      pagina: 'ajax',
                      show: 'cars',
                      brand: 123
                  });
                  return false;
              });
          });
      </script>
  </body>
</html>

当我点击按钮时,我可以看到发送到脚本的所有请求变量

答案 1 :(得分:0)

经过漫长的努力,我成功地解决了这个问题。我的JS代码很好,也许Phil也是......我没有在这个版本中尝试过,但Chrome中的真正问题是不允许选项标签上的onclick属性。所以我做了这个活动

<select onchange='loadData(this.value,'models')'></select> 

它运作良好。不管怎样,谢谢你。

答案 2 :(得分:0)

由于安全原因,如果请求不是来自受信任的站点,则chrome不允许跨域通信, 如果你想在chrome中使用$ .ajax,那么你需要取消chrome的web安全性 使用这个comman。

your_chrome_path --disable-web-security

这样做之后$ .ajax工作正常。