首页 > 解决方案 > 创建 Jira 问题的 PHP 表单不起作用

问题描述

我是使用 php 和 api 的初学者。我想要做的是使用 Jira Rest Api 创建一个新的 Jira 问题。这是我的第一个此类项目。我将在下面发布我的 2 页中的代码。我无法弄清楚我的问题是什么。我提到我已经使用 Advanced REST 客户端(与 POSTMAN 基本相同的工具)测试了 api,当我在那里进行测试时,它可以工作,但在我的网站上却不行。我提到“JIRA PLACEHOLDER”在我的代码中被实际的 jira 实例取代。

Jira-create-issues.php

<?php
    $base64_usrpwd = base64_encode($_POST['user'].':'.$_POST['pass']);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://JIRA-PLACEHOLDER/jira/rest/api/2/issue/');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',
                                                'Authorization: Basic '.$base64_usrpwd)); 

    $arr['project'] = array( 'key' => 'TEST');
    $arr['summary'] = $_POST['summary'];
    $arr['description'] = $_POST['description'];
    $arr['issuetype'] = array( 'name' => $_POST['type']);

    $json_arr['fields'] = $arr;

    $json_string = json_encode ($json_arr);
    curl_setopt($ch, CURLOPT_POSTFIELDS,$json_string);
    $result = curl_exec($ch);
    curl_close($ch);

    echo $result;
?>

jira-create-issue.html 的代码:

<html>
<head>
<script src="jquery-2.1.4.js"></script>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<div id="wrapper">
    <h1>Create Issue</h1>
    <form id="create-form">
        Summary: <input type="text" name="summary" id="summary" value=""/>
        Description: <input type="text" name="description" id="description" value="" />
        Issue Type: <input type="text" name="type" id="type" value=""/>
        Username: <input type="text" name="user" id="user" value=""/>
        Password: <input type="password" name="pass" id="pass" value=""/>
        <input type="button" id="button" value="Create Issue"/>
    </form>
</div>
<script>
$('#button').click(function() {
     $.ajax({
       type: "POST",
       url: "jira-create-issue.php",
       data: $('#create-form').serialize(),
       success: function(data){
          alert(data);
       },
       dataType: "html"
    });
});
</script>
</body>
</html> 

标签: phphtmlapijirajira-rest-api

解决方案


更新: 在更深入地查看您的代码之后,它可以正常工作......您可以尝试的一件事是将其发布到服务器。可能是 Jira 不允许您从本地主机调用它们。这就是我能做的。你的前端工作(测试它,也没有我的补充。显然 style.css 和 jquery 需要正确引用)。您的后端似乎是正确的,它需要字段并正确映射它们。所以错误一定是Jira没有在你调用它们的端点上响应......祝你好运!

没有提交按钮?(类型=提交)

改变

<input type="button" id="button" value="Create Issue"/>

<input type="submit" id="button" value="Create Issue"/>

如果这不起作用,请尝试查看控制台是否有 JavaScript 错误?特别是在邮政。

您还忘记了表单操作。尝试添加;-)

<form id="create-form" action="Jira-create-issues.php" method="POST">

推荐阅读