отправка ajax GET с форматом ответа javascript

Я пытаюсь сделать следующее

$("select.languages").on("change", function(){
        var lang = $(this).find("option:selected").text();
        $.get(url: "/search",
                data: {"lang": lang},
            dataType: 'script');
    });

поэтому каждый раз, когда выбирается язык, я бы вызвал /search с языком и другими SO-ответами, чтобы сделать dataType «скриптом»

но это не совсем работает. Что работает

$.get( "/search.js",{"lang": lang} )

но это загрязняет URL-адрес, поскольку формат очень явный, и использование этого метода требует от меня добавления лишнего бессмысленного кода

я могу неявно установить формат ответа?


person Nick Ginanto    schedule 06.03.2014    source источник
comment
если я добавлю кудри, я получу странный URL-адрес, который приведет к http://localhost:3000/[object%20Object]   -  person Nick Ginanto    schedule 06.03.2014


Ответы (2)


Попробуйте вместо этого:

$.ajax({
  url: "/search",
  data: {"lang": lang},
  dataType: 'script'
});

сокращенный метод получения не принимает параметры как объект, подобный этому.

person Slicedpan    schedule 06.03.2014
comment
можешь объяснить, что ты имеешь в виду? - person Slicedpan; 06.03.2014
comment
не принимает вы уверены? по предоставленной вами ссылке просто прокрутите вниз до последней. - person Jai; 06.03.2014
comment
перебор кеша, решенный с помощью $.ajaxSetup({ cache: true });, кажется, работает, пока не сломается - person Nick Ginanto; 06.03.2014
comment
@Jai, он не принимает объект в качестве единственного параметра, как функция $ .ajax, он принимает объект в качестве второго параметра для данных этого параметра - person Slicedpan; 06.03.2014
comment
@slicedpan data: {"lang": lang} вы должны убрать data: из этой части. - person Jai; 06.03.2014

Вероятно, синтаксическая ошибка - я бы попробовал это:

   $("select.languages").on("change", function(){
        var lang = $(this).find("option:selected").text();
        $.ajax({
            url: "/search",
            data: {"lang": lang}
        });
    });

Поскольку вы пытаетесь отправить JS-запрос, вам, вероятно, даже не понадобится свойство dataType, поскольку Ajax ожидает его по умолчанию: $. ajax - dataType

person Richard Peck    schedule 06.03.2014