Не могу заставить $ .ajax или $ .get работать - PullRequest
0 голосов
/ 20 сентября 2009

У меня есть этот код $ .ajax (с использованием jquery), изначально это был комментарий. я что-то пропускаю?

$.fn.randomContent = function(options){
    var contentArray = new Array();
    var dType = "html";
    var defaults = {
        xmlPath: "../xml/client-quotes.xml",
        nodeName: "quote"
    };
    var options = $.extend(defaults, options);
    alert(options);
    $.ajax({
        type: "GET",
        url: "../xml/client-quotes.xml",
        dataType: "html",
        success: function(){
            $(defaults.nodeName).each(function(i){
                contentArray.push($(this).text());
            });
            $(this).each(function(){
                $(this).append(getRandom());
            });
        },
        error: function(){
            alert("Something Went wrong");
        }

    });
    /*$.get(defaults.xmlPath, function(){
                                         alert("get");
        $(defaults.nodeName).each(function(i){
            contentArray.push($(this).text());
        });
        $(this).each(function(){
            $(this).append(getRandom());
        });
    }, type);//$.get*/
};

Вот функция getRandom ():

function getRandom() {
    var num = contentArray.length
    var randNum = Math.floor(Math.random()*num)
    var content = "";
    for(x in contentArray){
        if(x==randNum){
            content = contentArray[x];
        }
    };
    alert(content);
    return content;
}

Ответы [ 2 ]

1 голос
/ 20 сентября 2009

Возможно, браузер кеширует ваши GET-запросы. В этом случае либо:

  1. убедитесь, что сервер контролирует параметры вашего кэша (используя настройки управления кэшем: private или no-cache)
  2. изменить метод вызова AJAX на POST вместо GET
  3. дифференцируйте ваш запрос GET, добавив параметры строки запроса, которые меняются при каждом запросе

Я предпочитаю вариант № 1, в частности, потому что операции POST предназначены для изменения чего-либо на сервере, и поэтому мы должны использовать этот метод, когда наши действия действительно изменяют состояние сервера. С другой стороны, запросы GET - это запросы, которые не выполняют ничего, кроме чтения данных.

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

0 голосов
/ 20 сентября 2009

Должен ли этот URL быть абсолютным? Я никогда не пытался делать запросы Ajax с "../" в нем. У вас установлен FireBug? Вы можете проверить заголовок ответа от сервера.

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