What problems may using the MIME type application/json cause?

后端 未结 3 1962
不知归路
不知归路 2020-12-21 06:10

I am working on a web service the needs to return JSON data. I read that I should use application/json but am not sure what problems this may cause?

For example, w

相关标签:
3条回答
  • 2020-12-21 06:20

    Let's consider IE. Say you have a hidden iFrame which you use to request a file download. For example

    <iframe src="getFile?id=123">
    

    Now, the server may send a JSON-encoded error message like

    {
        error: 'File 123 does not exist',
        retryLater: false
    }
    

    If that error message is sent as application/json, a download dialog will appear, because the JSON text is mistaken for the actual file.

    On the other hand, a MIME type of text/plain will cause the message to be rendered in the iFrame, and you can extract it, and transform it into a fancy pop-up or something using JScript.


    (Edit)

    Real-world example: EXTJS Fileupload - Problem with IE8 security bar

    0 讨论(0)
  • 2020-12-21 06:39

    This has been discussed before:

    What is the correct JSON content type?

    Any firewalls that block the MIME type will cause problems with any AJAX-style web apps, so I really wouldn't worry about it.

    0 讨论(0)
  • 2020-12-21 06:41

    Having just had a long fight with IE8 myself with this I found that if you're loading the json into an iframe as text/plain, IE8 will wrap this in a tag. If you then fetch the content out with innerHTML and try to parse this as json, it'll fail.

    I ended up having to send the content as text/html, which just seems totally wrong, but works in IE and doesn't seem to mess up other browsers more modern AJAX handling.

    0 讨论(0)
提交回复
热议问题