JQL查询出错:字符\'%\'是一个保留的JQL字符

时间:2016-09-30 10:56:36

标签: node.js jira jira-rest-api

在jira,我有一个名为" Abc Def Management"的项目。当我试图在这个项目中使用rest Api获取所有问题时,我收到以下错误。

errorMessages: [ 'Error in the JQL Query: The character \'%\' is a reserved JQL character. You must enclose it in a string or use the escape \'\\u0025\' instead.

我在下面输入我的代码。

client.post("https://xxx.atlassian.net/rest/auth/1/session", loginArgs, function(data, response){
        console.log('Response', response);
        if (response.statusCode == 200) {
            console.log('succesfully logged in, session:', data.session);
            var session = data.session;
            // Get the session information and store it in a cookie in the header
            var searchArgs = {
                headers: {
                    // Set the cookie from the session information
                    cookie: session.name + '=' + session.value,
                    "Content-Type": "application/json"
                },
                data: {
                    // Provide additional data for the JIRA search. You can modify the JQL to search for whatever you want.
                    jql: "project=Abc%20Def%20Management"
                }
            };
            // Make the request return the search results, passing the header information including the cookie.
            client.post("https://xxx.atlassian.net/rest/api/2/search", searchArgs, function(searchResult, response) {
                console.log('status code:', response.statusCode);
                console.log('search result:', searchResult);
            });
            // response.render('index', {
            // });
        }
        else {
            console.log("Login failed");
            // throw "Login failed :(";
        }
    });

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

使用空格代替%20。

您正在使用POST请求,该请求将在其正文中包含jql,而不是作为url的一部分。所以没有必要对任何东西进行url编码。