Чтение параметра строки запроса с помощью jQuery возвращает ноль - PullRequest
0 голосов
/ 15 января 2010

Я пытаюсь прочитать параметр строки запроса ("ssip") через jQuery и плагин запроса, но, похоже, он возвращает ноль вместо фактического значения.

Вот мой код:

<script src="jquery-1.3.2.min.js" language="javascript"></script>
<script src="jquery.query-2.7.1.js" language="javascript"></script>

<script language="JavaScript" type="text/javascript">
  function getStreamingServerIP() {
    return $.query.get('ssip');
  }
</script>

Я вызываю этот метод из Flex через ExternalInterface.

Кто-нибудь замечает какие-либо проблемы с вышеуказанным кодом?

Ответы [ 3 ]

1 голос
/ 30 марта 2011

У меня такая же проблема.

Я считаю, что плагин запроса версии 2.1.7 совместим только с jQuery 1.2.x.

На странице загрузки плагина установите флажок выбора версии API, нажмите «Применить», и вы увидите, что для jQuery 1.3 или 1.4 нет выпусков.

0 голосов
/ 17 января 2010

Это то, что я использую.

<code><!doctype html>
<html>
<head>
<script src="jquery-1.4.js"></script>
<script>
/**
 * @return null if param not found
 * @return string if param found once
 * @return array if param found more than once or name ends with "[]"
 */
function getQueryStringParam (name) {
    var result = null;
    if (location.search !== "") {
        var querystring = location.search.substring(1).replace(/\+/g, " ");
        var pairs = querystring.split("&");
        var isFound = false;
        for (var i=0; i<pairs.length; i++) {
            var pair = pairs[i].split("=");
            var key = decodeURIComponent(pair[0]);
            if (key === name) {
                var val = (pair.length === 2 ? decodeURIComponent(pair[1]) : key);
                if (!isFound) {
                    isFound = true;
                    result = [val];
                }
                else {
                    result.push(val);
                }
            }
        }
        if (isFound && result.length == 1 && !/\[.*\]$/.test(name)){
            result = result[0];
        }
    }
    return result;
}
/**
 * helper function
 */
function printQueryStringParam (name) {
    var result = "";
    var val = getQueryStringParam(name);
    if (val === null) {
        result = "null";
    }
    else if (jQuery.isArray(val)) {
        result = "[\n\t" + val.join(",\n\t") + "\n]";
    }
    else {
        result = val;
    }
    return result;
}
</script>
</head>
<body>

<form action="test.html" method="get">
<p>
text <input type="text" name="text" 
value="space: , plus:+, slash:/, backslash:\, amp:&amp;, equals:=, less:<, greater:>"><br>
</p>
<p>
checkbox[]<br>
<input type="checkbox" name="checkbox[]" value="a" checked> a<br>
<input type="checkbox" name="checkbox[]" value="b" checked> b<br>
</p>
<p>
<input type="submit">
</p>
</form>

<hr>

<pre>
<script>
document.write("text: "+printQueryStringParam("text"));
document.write("\ncheckbox[]: "+printQueryStringParam("checkbox[]"));
</script>
0 голосов
/ 15 января 2010

Я воспроизвел это без проблем, мой URL:

http://localhost/test/test/Test.html?ssip=foo

getStreamingServerIP (), запущенный из консоли Firebug, возвращает «foo»

Убедитесь, что вы делаете запрос на действительный URL, а не на локальный файл, загруженный в браузер.

Проверьте в Firebug, есть ли у вас что-то в> DOM Panel>, затем в дереве:

окно> местоположение> поиск

...