HTTP-запрос с помощью javascript и форматирование параметра и значений после длины

#javascript #http #get #httprequest

#javascript #http #получаем #httprequest

Вопрос:

Здесь у меня небольшая проблема. Я пытаюсь создать функцию, которая должна отправлять HTTP-запрос на Javascript, который затем вернет данные, которые я буду использовать на веб-сайте. В любом случае проблема, с которой я сталкиваюсь здесь, заключается в том, что параметры и значения не всегда будут одинаковыми.

 function getresults(values){
    if(values != ''){
        var exploded = values.split("amp;");
        var getarr = exploded.split("=");
        var array = new Array();
        exploded.forEach(function(entry) {
            var newexplode = entry.replace("=", ":");
            array[newexplode[0]] = newexplode[1];
        });
        $.get(
            "results.php",
            {param : "value"},
            function(data) {
                alert(data);
            }
        );

    }
    };
  

Итак, что мне нужно сделать, это ввести все содержимое массива в curlybrackets, где я сделал пример того, как параметры и значения и отправляются.

 getresults("search=generalamp;searchterm=asdamp;wildcardend=noamp;wildcardbegin=noamp;page=1")
  

Вот пример вызова input.
Количество параметров может варьироваться, и будет невозможно узнать, сколько у меня будет и так далее.

Мне либо нужен новый способ выполнения HTTP-запроса, совместимый с несколькими браузерами, либо мне нужен какой-то способ ввода этого в параметр:value curlybrackets.

Еще раз, прочитайте это внимательно, я не могу знать, сколько параметров я получу заранее, поскольку это может отличаться, и я также не смогу узнать, в каком порядке они равны 100%.

[ПРАВИТЬ] Я сделал глупый обход, который работает, но мне все еще интересно, есть ли какие-либо альтернативные решения.

Ответ №1:

Вместо построения массива вам, вероятно, следует создавать объект JSON

 var paramObj = {};
for ( var entry in exploded){
    paramObj[entry] = entry.split('=')[1];
}
$.get(
        "results.php",
        {param : paramObj},
        function(data) {
            alert(data);
        }
    );