#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);
}
);