从REST API

时间:2017-01-11 22:09:28

标签: php ajax rest jira-rest-api

我希望在用户使用cookie auth登录后从rest api获取特定数据,但我最终得到Field' fieldname'不存在或匿名用户无法查看此字段。

下面你可以看到我在ajax和php中编写的代码来获取数据。我知道我的脚本可能很糟糕,因为我第一次使用curl请求所以忍受我,我希望有人告诉我我做错了什么或者更好地向我解释如何使用curl获取和发布数据到服务器并得到和特定数据显示将不胜感激。

$('#user-profile').click(function(){
        $.ajax({
            type: "POST",
            url: "jiraticket.php",
            data: $('#login-form').serialize(),
            success: function(data){
                alert(data);
            }
        });
    });

这是脚本

    <?php
session_start();


  $url = 'http://base-url/rest/api/2/search?jql=issuetype%20=%20Epic%20AND%20status%20in%20(%22In%20Progress%22,%20Backlog,%20%22On%20hold%22,%20%22To%20Do%22)';
  $curl_session = curl_init($url);
  curl_setopt($curl_session, CURLOPT_HEADER, 0);
  curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, true);

    if(isset($_COOKIE['JSESSIONID']))
    $cookie_string='JSESSIONID='.$_COOKIE['JSESSIONID'];
    else
    $cookie_string="";



    curl_setopt($curl_session, CURLOPT_HTTPHEADER, array('Content-Type: application/json' ,'Authorization: Cookie'), array('cookie:'.$cookie_string));

   $response = curl_exec($curl_session);

   curl_close($curl_session);



   if ( !$response ) {
       die('Nothing was returned.');
   }


   $result = json_decode($response, true);

   print_r($result);

1 个答案:

答案 0 :(得分:0)

  

$ response printing“errorMessages”:[“字段'issuetype'不存在   或匿名用户无法查看此字段。“]

嗯,这意味着API不希望为您提供 issuetype 的值。

可能是一个错字或其他东西,但这不是你的卷曲调用的错误,这是API提供商的问题