Skip to Main Content

ORDS, SODA & JSON in the Database

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

400 bad request DELETE handler application/json request with empty body

Simon CollinsMar 29 2022

Hi
We're in the middle of integrating with a 3rd party's API. One of the their calls expects us to set up a DELETE handler that accepts a paramater in the header but has no body. They are setting the content-type as application/json. It appears that in these circumstances ORDS is failing the calls with "Expected one of: <<{,[>> but got: <<EOF>>". It's expecting at least a {} in the body but getting nothing. There's a link to a very similar post below.
Is this a restriction / issue with ORDS or should the vendor not be setting the header to "application/json" if no body is passed through. I'm being told that they cannot change as many other clients use the API suite so we're at a bit on an impasse. We're on ORDS 20.2
Any advice, workarounds would be appreciated
Thanks
Simon

Creating POST handler with Content-Type:application/json (0 Bytes)

Comments

trent
Hi Scott,

If you open the developer toolbar, you will notice the document mode is: IE9 standards.

Change this to: Standards and it works fine.

I'm not very guru'ey in IE stuff, but there must be something in the template forcing it to go into IE9 mode. The hunt begins!
trent
Answer
Couldn't find anything to suggest it should force ie9 standards.

But adding the following to the page header seems to clear that and actually load in Standards mode.
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
I do note that the apex builder pages are all loaded in IE9 Standards mode as well, which I find a little odd.

It is worth checking out the following:

http://msdn.microsoft.com/en-us/library/ms533876%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx
*Note Edge mode is intended for testing purposes only; do not use it in a production environment.*
Because it forces all pages to be opened in standards mode, regardless of the version of Internet Explorer, you might be tempted to use this for all pages viewed with Internet Explorer. Don't do this, as the X-UA-Compatible header is only supported starting with Windows Internet Explorer 8.
Tip If you want all supported versions of Internet Explorer to open your pages in standards mode, use the HTML5 document type declaration, as shown in the earlier example.>

Although, everywhere seems to suggest using edge mode (StackOverflow, etc)

http://stackoverflow.com/questions/5374099/how-do-i-force-internet-explorer-to-render-in-standards-mode-and-not-in-quirks
http://webdesign.about.com/od/metataglibraries/p/x-ua-compatible-meta-tag.htm
"IE=edge" tells Internet Explorer to use the highest mode available to that version of IE. Internet Explorer 8 can support up to IE8 modes, IE9 can support IE9 modes and so on.
Edited by: trent

Excuse all my edits! It looks like the !html5 test just below the opening head tag does not pass, which is where it should set browser mode to standards. I'd say just to take it out of there and put it in the if gte IE9 bit, so:
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="&BROWSER_LANGUAGE."><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">  <!--<![endif]-->
Marked as Answer by Scott Wesley · Sep 27 2020
Scott Wesley
Thanks Trent, from what I read I figured the issue would be something to do with those headers - but you've interpreted it nicely for me.

Scott
1 - 3

Post Details

Added on Mar 29 2022
4 comments
1,392 views