in Now Experience Custom Component - How to specify "Content-Type" header to 'createHttpEffect'?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-09-2023 04:36 AM - edited 05-09-2023 06:39 AM
I am trying to use the Attachment API to upload an attachment from a Custom Component.
If I specify an action using createHttpEffect like:
'UPLOAD_ATTACHMENT': createHttpEffect("/api/now/attachment/file", {
method: 'POST',
batch: httpBatchMode,
queryParams: ['file_name', 'table_name', 'table_sys_id' ],
dataParam: 'requestData',
successActionType: 'UPLOAD_ATTACHMENT_SUCCESS',
errorActionType: 'UPLOAD_ATTACHMENT_ERROR',
headers: { 'MyHeader': 'YES', 'Content-Type': '*/*' }
}),
The request fails with "Missing parameter: Content-Type"
The request headers sent show the "MyHeader" is getting added, but "Content-Type" is not set. I have tried using "contentType" and "ContentType" instead - both of these get added verbatim, but "Content-Type" does not get set.
Edit Update:
Looking at the `createHTTPEffect` API this may be a flawed approach - as the Attachment API requires the Full "Path to the binary file to attach" and this is not something that Browsers provide (according to this) so solving the "Content-Type" header may only lead to next issue.
Any ideas?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-09-2023 10:10 AM
Hi @David Hubbard ,
To specify the "Content-Type" header using createHttpEffect, you can add a "headers" property to the configuration object and set the value of "Content-Type" to the desired value.
For example:
'UPLOAD_ATTACHMENT': createHttpEffect("/api/now/attachment/file", {
method: 'POST',
batch: httpBatchMode,
queryParams: ['file_name', 'table_name', 'table_sys_id' ],
dataParam: 'requestData',
successActionType: 'UPLOAD_ATTACHMENT_SUCCESS',
errorActionType: 'UPLOAD_ATTACHMENT_ERROR',
headers: {
'MyHeader': 'YES',
'Content-Type': 'application/json' // or any other content type you need
}
}),
If my response was helpful in resolving the issue, please consider accepting it as a solution by clicking on the ✅Accept solution button and giving it a thumbs up 👍. This will benefit others who may have a similar question in the future.
Thank you!
Ratnakar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-10-2023 03:23 AM
Ratnakar7 hi
Thanks for replying - the issue seems to be that the attachment API allows a content type of "*/*", but 'createHttpEffect' didn't seem to want to apply this.
I have actually gone a slightly different direction and have managed to get "/api/now/attachment/upload" working in 'createHttpEffect' using a <form> which doesn't hit this issue - for that the Content-Type is '