jQuery ajax не работает с последней версией Chrome - PullRequest
2 голосов
/ 09 февраля 2011

Эй, ребята, У меня есть небольшая проблема с простым запросом ajax. Я не могу понять, почему метод jquery ajax не работает с последней версией chrome ... на ff отлично работает, как на опере, но на 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 ]

3 голосов
/ 09 февраля 2011

По какой причине вы не просто используете jQuery.load()? Например,

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

Я бы сказал, что проблема в вызове innerHTML. Более надежный метод - использовать jQuery.html(), например

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

Редактировать

Только что запустил этот тест и он отлично работает

<code><?php
// test.php
echo '<pre>', print_r($_REQUEST, true), '
';
<!-- 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>

Когда я нажимаю кнопку, я вижу все переменные запроса, отправленные в скрипт

0 голосов
/ 30 марта 2012

из-за соображений безопасности chrome не разрешает междоменную связь, если запрос не от доверенных сайтов, если вы хотите использовать $ .ajax в chrome, поэтому вам нужно отключить веб-безопасность chrome, используйте этот коммандер.

your_chrome_path --disable-web-security

после этого $ .ajax работает нормально.

0 голосов
/ 09 февраля 2011

После долгих и долгих попыток мне удалось решить проблему. Мой JS-код хорош, а может, и Фил тоже ... Я не пробовал этого в этой версии, но реальная проблема в Chrome в том, что атрибуты onclick для тегов параметров не допускаются. Итак, я сделал событие

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

и работает отлично. Спасибо, Фил, в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...