首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OTRS CreateTicket

OTRS CreateTicket
EN

Stack Overflow用户
提问于 2018-03-16 00:49:48
回答 3查看 1.1K关注 0票数 1

我正在尝试创建OTRS票证。

网络服务类型HTTP:REST

代码语言:javascript
复制
var data = {
  Ticket: {
    Title: "123123",
    TypeID: "2",
    QueueID: "1",
    State: "open",
    PriorityID: "2",
    ServiceID: "1"
  },
  Article: {
    Subject: "123123",
    Body: "Trololo",
    ContentType: "text/plain; charset=utf8"
  },
  SessionID: 123
};

$.ajax({
  url: url,
  type: 'POST',
  dataType: 'json',
  data: JSON.stringify(data),
  success: function(res) {
    ...
  },
  error: function(res) {
    ...
  }
});

在提交之后,我得到了一个错误:Could not read input data

如果我尝试更改方法以获取并将数据类型更改为JS obj,则会得到另一个

代码语言:javascript
复制
error:
ErrorCode:"TicketCreate.MissingParameter"
ErrorMessage:"TicketCreate: Ticket parameter is missing in or not valid!"

我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2018-04-16 16:07:10

这是因为CORS;这基本上意味着不允许从浏览器向任何URL发送POST请求。如果您想被允许这样做,您必须更改您的web服务器配置。

顺便说一下,您很可能希望从服务器端将请求发送到OTRS REST API,而不是从客户端。如果你从客户端发送它,你需要在客户端存储访问令牌或类似的东西,这在大多数情况下是一个坏主意。这样做的一个很好的副作用是,它也可以解决CORS问题。

有关CORS的解释,请查看以下内容:

How does Access-Control-Allow-Origin header work?

对于为什么在某些情况下,普通JS可以在jQuery不能工作的情况下工作的具体解释:

A CORS POST request works from plain javascript, but why not with jQuery?

票数 0
EN

Stack Overflow用户

发布于 2018-04-18 05:54:24

你的有效载荷似乎太简单了。:-D OTRS的REST接口是有限的,并且不容易使用。例如,如果您想要通过curl创建一个票证,那么有效负载需要类似于:

curl -X POST -H“内容类型:应用程序/json”--data '{"UserLogin“:"ZnunyAgent","Password”:"znuny4otrs"," ticket“:{"Title”:"some ticket title","Queue“:"Postmaster","State”:"new","PriorityID“:"3","CustomerUser”:"znuny@znuny.com"},“文章”:{"Subject“:”某主体“,"Body”:“某主体”,"ContentType“:”文本/纯文本;字符集=ISO-8859-15“,"MimeType”:“文本/纯文本”,“字符集”:“ISO-8859-15”}‘http://localhost/otrs/nph-genericinterface.pl/Webservice/1/TicketCreate

如您所见,对于Ajax请求,您需要注意/采用以下内容:

1)将用于身份验证的用户放入有效负载(或首先创建用户会话)

2)使用正确的url和url中配置的webserice id

票数 0
EN

Stack Overflow用户

发布于 2018-11-20 22:36:40

下面的方法对我很有效。

我还为CORS添加了一个Chrome扩展,以绕过localhost CORS限制。

代码语言:javascript
复制
var data =
{
    "Ticket": {
        "Title": "Rest Create",
        "Type": "Support",
        "Queue": "{some queue here}",
        "State": "New",
        "Priority": "3 Important",
        "CustomerUser": "{some email here}"
    },
        "Article": {
        "Subject": "Rest Create",
        "Body": "Test",
        "ContentType": "text/plain; charset=utf8"
    }
};


$.ajax({
    url: "http://dev-otrs-1/otrs/nph-genericinterface.pl/Webservice/{CONNECTORNAME}/Ticket?UserLogin={USERNAME}&Password={PASSWORD}",
    type: "post",
    data: JSON.stringify(data),
    success: function (response) {
        console.debug(response);
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49305007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档