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

创建Jira问题的PHP表单不起作用,php,html,api,jira,jira-rest-api,Php,Html,Api,Jira,Jira Rest Api,我是一个使用php和api的初学者。我正在尝试使用JIRARESTAPI创建一个新的Jira问题。这是我的第一个此类项目。 我将发布我2页的代码。我想不出我有什么问题。 我提到我已经使用AdvancedRESTClient(与POSTMAN基本相同的工具)测试了api,当我在那里测试时,它可以工作,但在我的站点上却不能。我提到在我的代码中,“JIRA占位符”被实际的JIRA实例替换 Jira-create-issues.php <?php $base64_usrpwd = base

我是一个使用php和api的初学者。我正在尝试使用JIRARESTAPI创建一个新的Jira问题。这是我的第一个此类项目。 我将发布我2页的代码。我想不出我有什么问题。 我提到我已经使用AdvancedRESTClient(与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> 

制造问题
总结:
说明:
发行类型:
用户名:
密码:
$(“#按钮”)。单击(函数(){
$.ajax({
类型:“POST”,
url:“jira create issue.php”,
数据:$('#创建表单')。序列化(),
成功:功能(数据){
警报(数据);
},
数据类型:“html”
});
});
更新: 在更深入地研究代码之后,它正在按其应有的方式工作。。。 您可以尝试将其发布到服务器。可能是Jira不允许您从本地主机呼叫他们。 这就是我所能做的。您的前端可以正常工作(测试了它,也没有添加我的内容。显然,style.css和jquery需要正确引用)。您的后端看起来是正确的,它接受字段并正确映射它们。所以错误一定是Jira在你呼叫他们的端点上没有响应…祝你好运

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

改变

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


如果这不起作用,请尝试查看控制台中的JavaScript错误?尤其是在岗位上

您还忘记了表单操作。试着加上那个;-)



我尝试按照建议更改代码。不幸的是,它没有成功。我检查了控制台上的日志。我确实有两个错误:
jira create issue.html:3 GEThttp://localhost/request2/jquery-2.1.4.js       net::ERR_中止404(未找到)jira创建问题。html:19未捕获引用错误:$未在jira创建问题中定义。html:19
我已将jquery-2.1.4.js文件添加到网页根目录中,控制台中的错误消失了,但是提交仍然不起作用。将其从“按钮”更改为“提交”也不是解决方案,因为我在下面稍微声明了一下按钮,以及它在单击时应该做什么:(我在回答中添加了一条注释谢谢编辑。你是对的,我忘记了。我不应该使用“发布”吗因为我试图创建一个新的问题,所以我尝试了get和post方法,但仍然不起作用:(您的控制台中是否出现此错误?
jquery-2.2.4.min.js:4在'file:///C:/Users/来自源站的~/Desktop/create.php“null”已被CORS策略阻止:跨源站请求仅支持协议方案:http、数据、chrome、chrome扩展、https。
Hey!不,我没有收到此错误,因为e我安装了XAMPP,我用它来运行我的本地主机。如果没有它,是的,我会出现错误。请你提供jira的回复好吗?嘿,当我尝试使用这个PHP表单创建问题时,我没有得到任何答案。唯一发生的事情是,该站点显示了一个空的弹出窗口。我制作了一个屏幕截图,你可以在这里看到:When I cr使用高级REST客户端软件(类似于POSTMAN)和JiraAPI创建它,它会产生新的问题,因此我编写PHP代码的方式一定有问题。
<input type="submit" id="button" value="Create Issue"/>
<form id="create-form" action="Jira-create-issues.php" method="POST">