Javascript 简单但难以将POST请求从使用URL参数转换为请求正文
我使用URL参数以以下方式发出POST请求,该请求有效:Javascript 简单但难以将POST请求从使用URL参数转换为请求正文,javascript,xml,api,post,zendesk,Javascript,Xml,Api,Post,Zendesk,我使用URL参数以以下方式发出POST请求,该请求有效: var PAYLOAD = ` <myxmlcontent> <attribute name="id">1</attribute> <attribute name="FullName">Joe Bloggs</attribute> </myxmlcontent> ` var URL = 'http://www.somewhere.com/in
var PAYLOAD = `
<myxmlcontent>
<attribute name="id">1</attribute>
<attribute name="FullName">Joe Bloggs</attribute>
</myxmlcontent>
`
var URL = 'http://www.somewhere.com/integration?apiKey=company&apiToken=123&payload=' + PAYLOAD;
client.request({
url: URL,
type: 'POST',
contentType: 'application/xml'
}).then(
function(data) {
console.log(data);
}
);
但我希望将有效负载数据放入请求主体中
这是正确的方法吗?我不确定,但到目前为止,我的尝试没有成功:
var PAYLOAD = `
<myxmlcontent>
<attribute name="id">1</attribute>
<attribute name="FullName">Joe Bloggs</attribute>
</myxmlcontent>
`
client.request({
url: 'http://www.somewhere.com/integration',
type: 'POST',
contentType: 'application/xml',
headers: {
apiKey: 'company',
apiToken: '123'
},
dataType: 'xml',
data: 'data=' + JSON.stringify(PAYLOAD)
}).then(
function(data) {
console.log(data);
}
);
我目前正在构建客户端Zendesk应用程序。首先,您必须确保端点通过POST接受数据,否则即使您正确保存数据,它也会失败;其次,如果您希望以url编码的形式发送数据,您需要将contentType更改为application/x-www-form-urlencoded,并将正文作为url编码字符串发送,或者使用FormData对象发送(如果框架中有),例如: var myData=新FormData; myData.appendpayload,encodeURIPAYLOAD; client.request{ 网址:'http://www.somewhere.com/integration', 键入:“POST”, contentType:'application/x-www-form-urlencoded', 标题:{ 阿皮奇:“公司”, apiToken:'123' }, 数据类型:“xml”, 数据:myData }.那么 函数数据{ 控制台日志数据; }
; 解决了。这就是我要做的谢谢你:
var PAYLOAD = `
<myxmlcontent>
<attribute name="id">1</attribute>
<attribute name="FullName">Joe Bloggs</attribute>
</myxmlcontent>
`
var URL = 'http://www.somewhere.com/integration';
client.request({
url: URL,
type: 'POST',
contentType: 'application/x-www-form-urlencoded',
dataType: 'xml',
data: {
apiKey: 'company',
apiToken: '123',
payload: PAYLOAD
}
}).then(
function(data) {
console.log(data);
}
);
有用文章:是的,基本上是这样,只是没有对参数值进行编码。并且您的内容类型与您发送的内容不匹配。param字符串可能包含一个xml值,但它仍然是一个param字符串,而不是xml。嗨,Kevin,我只是想说我感谢你的帮助。如果我理解正确,我对代码做了以下更改。在请求之前:请求正文中的PAYLOAD=encodeURIComponentPAYLOAD:dataType:'text',data:'data='+JSON.stringifyPAYLOAD。不幸的是,我仍然收到500条回复。服务器希望您给出什么?我正在阅读与API相关的文档。入站API中的有效负载请求参数是XML。我不确定这是否值得注意:如果集成是在web服务模式下进行的,则****和客户端应用程序之间的消息是通过HTTP/HTTPS进行的。所有API都以键值对样式而不是REST样式接收输入,并以XML格式响应客户端。身份验证是通过在****和客户应用程序中维护的登录id/密码组合进行的。感谢arielnmz帮助我了解更多信息。我要看看我是否成功。感谢您抽出时间为其他人arielnmz和@Kevin_B提供指导