jqueryajaxinternet-explorer-8xdr

Ajax Post using iecors plugin


To get around cross Domain issues in ie8 + 9 I started to write my own XDomainRequest wrapper. Until joy, I discovered the iecors jQuery plugin on github https://github.com/dkastner/jquery.iecors. It works by modifying jQuery's AJAX transaction. I didn't have to modify my plethora of getJSON AJAX calls, which was a welcome sigh of relief.

However, when I use the $.post method response data is returned as a string. This causes problems because throughout the application the functions are setup to process json objects.

I have done a lot of reading around this and I know there are a ton of common pitfalls. But everything seems to work except for post responses. Can I perhaps preprocess post response data to make it an object?


Solution

  • jQuery will usually alter the returned data type based on the response headers. Your script that returns the (hopefully valid) JSON string should emit the Content-Type: application/json header first. Of course, if everything returned is JSON, you could always use

    $.ajaxSetup({'dataType': 'json'})