我正在研究Zoho recruit API candidates Module。它的文档指定了我需要在URL中发送的XML字段及其数据类型。 对于文本字段,它工作正常。但是对于附件,它显示为data type => Upload Text
。
现在我不明白这种upload text
数据类型的含义,我尝试使用以下代码将文件转换为文本:
$("form").submit((event) => {
event.preventDefault();
var file = $('#fileInp').prop('files')[0];
readFileContent(file).then(content => {
createCandidate(content);
}).catch(error => console.log(error))
});
function readFileContent(file) {
const reader = new FileReader()
return new Promise((resolve, reject) => {
reader.onload = event => resolve(event.target.result)
reader.onerror = error => reject(error)
reader.readAsText(file)
})
}
但是这没有用,然后我尝试将文件转换为base64
格式并将数据发送到api,但是抛出414。
根据documentation,我应该发送这样的请求
https://recruit.zoho.com/recruit/private/xml/Candidates/addRecords?authtoken=AuthToken&scope=recruitapi&duplicateCheck=( 1 OR 2 )&version=4&xmlData=[XML Data]
现在,这就是我的操作方式。 (在触发表单提交事件时调用此函数)
let createCandidate = (data) => {
let xmlString = ''+
'<Candidates>'+
'<row no="1">'+
'<FL val="Source">Zen3 Website</FL>'+
'<FL val="Current Employer">Your Company</FL>'+
'<FL val="First Name">Zain</FL>'+
'<FL val="Last Name">Smith</FL>'+
'<FL val="Email">zain@test.com</FL>'+
'<FL val="Phone">1234567890</FL>'+
'<FL val="Home Phone">0987654321</FL>'+
'<FL val="Other Phone">1212211212</FL>'+
'<FL val="Fax">02927272626</FL>'+
'<FL val="Mobile">292827622</FL>'+
'<FL val="Highest Qualification Held">MCA</FL>'+
'<FL val="Resume">'+data+'</FL>'+ // data accepts the 'File Upload text that is returned by readFileContent()'
'</row>'+
'</Candidates>';
const URL = `https://recruit.zoho.com/recruit/private/xml/Candidates/addRecords?authtoken=${AUTH_TOKEN}&scope=recruitapi&duplicateCheck=2&version=4&xmlData=${xmlString}`;
let proxyUrl = 'https://cors-anywhere.herokuapp.com/';
axios.post(proxyUrl+URL).then( i => console.log(i) ).catch( e => console.log(e) );
}
总而言之,我只想知道Zoho所指的数据类型Upload Text
的含义