用于创建 Jira 问题的 PHP 表单不起作用



我是使用php和api的初学者。我正在尝试做的是使用 Jira Rest API 创建一个新的 Jira 问题。这是我的第一个此类项目。 我将发布我的 2 页代码。我不知道我的问题是什么。 我提到我已经使用高级 REST 客户端(基本上与 POSTMAN 相同的工具(测试了 api,当我在那里这样做时它可以工作,在我的网站上它没有。我提到"JIRA 占位符"在我的代码中被实际的 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> 

更新: 在更深入地查看您的代码后,它正在正常工作...... 您可以尝试的一件事是将其发布到服务器。可能是 Jira 不允许你从本地主机呼叫他们。 这就是我能做的。您的前端工作(测试过它,也没有我的添加。显然样式.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">

最新更新