3

次の 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);
            },

        });
    }

編集 contentType: 'application/json', dataType: '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
}

クロムでは、コンソールにエラーが表示されます: XMLHttpRequest cannot load https://xxx.jira.com/rest/api/2/issue/http://localhost:49592Access-Control-Allow-Origin でオリジンが許可されていません。誰がエラーが何であるか知っていますか?

4

3 に答える 3

2

それが可能かどうかはわかりません。あなたが得たエラーは、クロスドメイン XMLHttp リクエストを実行できないということです。この回答の詳細については、こちらを参照してください。

これを回避する 1 つの方法は、jQuery による ajax 呼び出しを処理するローカル API を、php (またはその他の言語) を使用して作成することです。

たとえば、 REST APIを介して問題を作成するPHP ページを作成し、JavaScript を使用して必要なすべての詳細をこのページに投稿します。

助けが必要な場合はお知らせください。

編集

C# を使用してそれを行うには、おそらくJiraRestClient.NETのようなものを使用するのが最も簡単な方法です。

自分でコーディングする場合は、REST を使用した Jira への接続に関する情報を以下に示します。

于 2012-12-18T09:05:11.693 に答える
1

コンテンツ タイプは'application/json'ではなくである必要があり'application/jsonp'ます。

于 2012-12-14T19:17:19.767 に答える