2016-07-13 3 views
0

Я пытаюсь использовать jQuery AJAX для динамических данных POST в JIRA. Идея заключается в POST для API JIRA REST через «rest/api/2/issue /».Обход проверки токена XSRF

Я считаю, что все мои jQuery выложены правильно. Проблема, с которой мне приходится сталкиваться, - это «проверка маркера XSRF» при выполнении. Каждый раз, когда я пытаюсь запустить свой код, он возвращает «Ошибка проверки токена XSRF» с сервера.

Я прочитал заголовок «X-Atlassian-Token». У меня это как разрешенный заголовок на моей конфигурации сервера jira. ... то есть

'Header всегда установлен Access-Control-Allow-Headers "X-Atlassian-токен, авторизация, Content-Type"'

Я также установить заголовок на мою просьбу AJAX. «X-Atlassian-Token»: «no-check»

Может кто-нибудь помочь мне в правильной работе? Версия JIRA, проверенная с номером 6.4.12.

Текущий код AJAX приведен ниже для обзора.

$.ajax({ 
    url: "https://my-jira-host.com/rest/api/2/issue/", 
    type: "POST", 
    async: false, 
    headers: { 
     "X-Atlassian-Token": "nocheck", 
     "Content-Type": "application/json", 
     "Authorization": "Basic " + btoa("<username>:<password>") 
    }, 
    crossDomain: true, 
    dataType: "json", 
    data: JSON.stringify({"fields":{"project":{"key":"CLS"},"priority":{"name":"Minor"},"customfield_17125":{"value":"<Department>"},"customfield_17127":"<HOSTNAME>","customfield_17126":{"value":"<Object>"},"issuetype":{"name":"<issue-type>"},"customfield_17128":"dsfgfdsg","summary":"Department | HOSTNAME | Object","description":"sdfgfdg"}}), 
    success: function(XMLHttpRequest, textStatus, errorThrown) { 
     console.log("POST was a success!"); 
     console.log("HTTP Error Message: " + XMLHttpRequest.responseText); 
     console.log("HTTP Status: " + XMLHttpRequest.status); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     console.log("POST was a failure!"); 
     console.log("HTTP Error Message: " + XMLHttpRequest.responseText); 
     console.log("HTTP Status: " + XMLHttpRequest.status); 
    } 
    }); 

Следует также упомянуть, что этот код отправляется с клиентского веб-сайта, который я создал внутренне. Как клиентский интерфейс, так и JIRA-хост находятся в одной внутренней сети.

ответ

0

XSRF - это функция безопасности, используемая Jira для предотвращения использования пользователями вредоносных данных.

Если вы используете Firefox или Chrome, вам может понадобиться установить User-Agent с фиктивным значением, как это:

headers: { 
    "X-Atlassian-Token": "nocheck", 
    "Content-Type": "application/json", 
    "Authorization": "Basic " + btoa("<username>:<password>"), 
    "User-Agent": "xx" 
}, 
Смежные вопросы