如何在Luci openwrt的XHR.get请求中传递数组?

时间:2017-07-25 13:30:12

标签: javascript arrays ajax lua luci

我正在尝试将数组从javascript发送到Luci Openwrt中的XHR.get请求。

var myarray[] has some contents . for example : `myarray[] = {"1","2","3"}` 

我需要将此数组作为参数传递给XHR.get个请求。我怎么能通过这个阵列?

这是示例代码:

XHR.get('<%=REQUEST_URI%>', {status: 2,value: myarray},
    function(x, info) {
        if (!info) {
            location.href=location.href;
        }
        else {
            console.log("success");
        }
    }
);

在Lua代码中我收到了这个表单数据:

if luci.http.formvalue("status") == "2" then
    local DetailValue[] = luci.http.formvalue("value")
    local fileContent = {
        content = "sample1",
        find = "sample2"
    }
    luci.http.prepare_content("application/json")
    luci.http.write_json(fileContent)
    return
end

但我收到错误。这是通过XHR.get发送数组的正确方法吗?有什么建议 ?

1 个答案:

答案 0 :(得分:1)

以下是一个值的示例

XHR.get('<%=url('admin/services/sample')%>',  { example : 'test' }, function(x) {
        <do whatever>
});

function parse_gateway()
    local example = luci.http.formvalue("example")
end

当我尝试使用相同的密钥传递两个查询参数时,我得到了以下内容

XHR.get('<%=url('admin/services/sample')%>',  { example : 'test', example : 'test1' }, function(x) {
        <do whatever>
});

function parse_gateway()
    local example = luci.http.formvalue("example")
end

这个时间示例是test1

因此,在您的情况下,您似乎必须拥有唯一的参数键。

XHR.get('<%=url('admin/services/sample')%>',  { one : '1', two : '2', three : '3' }, function(x) {
        <do whatever>
});

function parse_gateway()
    local one = luci.http.formvalue("one")
    local two = luci.http.formvalue("two")
    local three = luci.http.formvalue("three")
end