不允许通过 REST api 和 jquery 405 方法创建 Jira 问题
Posted
技术标签:
【中文标题】不允许通过 REST api 和 jquery 405 方法创建 Jira 问题【英文标题】:create Jira issue via REST api and jquery 405 method not allowed 【发布时间】:2012-12-02 18:38:01 【问题描述】:使用以下 jquery 调用时,我收到 http 405 method not allowed 错误消息。 有谁知道如何解决这个问题?是因为https吗?我也尝试了 GET 和 PUT 类型,结果相同
function make_base_auth(user, password)
var tok = user + ':' + password;
var hash = btoa(tok);
return "Basic " + hash;
function createJiraIssue()
var datos =
"fields":
"project":
"key": "HELP"
,
"summary": "Test Ticket",
"description": "Creating of an issue using project keys and issue type names using the REST API",
"issuetype":
"name": "Bug"
,
"assignee": "name": "sim"
;
var parameters = JSON.stringify(datos);
var req = $.ajax(
url: 'https://xxx.jira.com/rest/api/2/issue/',
type: "POST",
data: parameters,
contentType: 'application/jsonp',
dataType: 'jsonp',
async: false,
processData: false,
beforeSend: function (xhr)
xhr.setRequestHeader('Authorization', make_base_auth(user, password));
,
error: function (errmsg)
alert('error ocured:' + errmsg.responseText);
,
success: function (text)
alert(text);
,
);
编辑 它一定要是, 内容类型:'应用程序/json', 数据类型:'json' 并且 405 错误消失了。
但现在代码最终出现在错误回调中。我将其中的警报功能更改为 alert('error ocured:' + errmsg.error); 它给了我这个: 发生错误:
function ()
if(!e)
var c=arguments,g,h,i,j,k;b&&(k=b,b=0);
for(g=0,h=c.length;
g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);
k&&f.resolveWith(k[0],k[1])
return this
在 chrome 中,我在控制台中收到错误消息:
XMLHttpRequest 无法加载 https://xxx.jira.com/rest/api/2/issue/
。 Access-Control-Allow-Origin 不允许来源http://localhost:49592
。
有人知道错误是什么吗?
【问题讨论】:
【参考方案1】:我不确定这是否可能。你得到的错误是说你不能做跨域 XMLHttp 请求。你可以在this answer找到更多信息。
绕过它的一种方法是使用 php(或任何其他语言)创建一个本地 API,它将为 jQuery 进行的 ajax 调用提供服务。
例如,写一个PHP page 将通过REST API 创建问题,然后使用javascript 将所有需要的详细信息发布到此页面。
如果您需要任何帮助,请告诉我。
编辑
使用 C# 来实现,最简单的方法可能是使用 JiraRestClient.NET 之类的东西。
如果您喜欢自己编写代码,这里有一些关于 connecting to Jira using REST 的信息。
【讨论】:
你也知道用c#怎么做吗?【参考方案2】:您的内容类型应该是'application/json'
,而不是'application/jsonp'
。
【讨论】:
是的,你是对的,它必须是,contentType:'application/json',甚至是 dataType:'json',但现在我得到错误回调:错误发生:(没有 responseText) ? 我改为 alert('error ocured:' + errmsg.error);它给了我这个:function ()if(!e)var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h= c.length;g我遇到了同样的问题,因为我使用的是 HTTP 而不是 HTTPS。
【讨论】:
以上是关于不允许通过 REST api 和 jquery 405 方法创建 Jira 问题的主要内容,如果未能解决你的问题,请参考以下文章
wcf REST 服务和 JQuery Ajax Post:方法不允许
Java Spring REST API CORS 不适用于通过 jQuery 和 Chrome 的 DELETE 请求
使用 jquery 查询 wcf rest 服务(不允许 405 方法)
使用 jQuery-Ajax REST API 调用的 iframe 显示不完整的页面
apache_conf DISMISS PUBLIC ACCESS到WordPress REST API;只允许通过相同的域访问API。允许所有管理员访问......动态IP ...