开发者

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

开发者 https://www.devze.com 2023-02-06 20:08 出处:网络
I am working ona 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?

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, will older browsers support it? (IE6+, FF, Opera, etc.)

Or is it possible that users behind corporate firewalls/proxy servers block the mime type application开发者_运维百科/json?

What, if any, problems have you had following this advice?


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


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.


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

精彩评论

暂无评论...
验证码 换一张
取 消