2016-09-30 426 views
1

在jira中我有一个名为“Abc Def Management”的项目。当我试图得到这个项目中的所有问题使用休息Api,我收到以下错误。JQL查询中的错误:字符'%'是保留的JQL字符

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

使用空格而不是%20。

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

+0

我也试过这个,但是不行。如果项目名称是一个单词,如'abc',那么它也不会产生任何结果。 –

+0

如果您在jira问题搜索中尝试使用,您的jql是否会返回任何结果? – GlennV

+1

@Appunni,您需要将项目名称放在引号中,如下所示:'jql =“Project = \”Abc Def Management \“”' – rorschach