easyXDM icon indicating copy to clipboard operation
easyXDM copied to clipboard

IE7/8 cors/index.html response header values have a trailing \r

Open javadoug opened this issue 12 years ago • 0 comments
trafficstars

I know the cors/index.html file is a template for customization but it might be good to fix this issue for the unsuspecting.

Steps to Reproduce: Serve cors/index.html response data with rawHeaders that contain \r\n line terminators, for example, response comes from a windows server.

req.getAllResponseHeaders() returns "Server: Apache-Coyote/1.1\r\nContent-Type: application/json\r\nTransfer-Encoding: chunked\r\nDate: Sat, 27 Apr 2013 16:20:41 GMT\r\n\r\n"

In IE7/8 to see these characters in the debugger, escape(req.getAllResponseHeaders()). Notice the %0D%0A in the output. The resulting headers object contains values with the %0D trailing each value.

This causes subsequent header value comparisons to fail. Since I was passing json data the error manifest in easyXDM incoming method by evaluating isJsonResp as false causing a string to be passed to my success callback instead of json object.

I changed the reHeader = /([\w-_]+):\s+(.*)\r\n|\r|\n/gm. Note the `\r\n|\r|\n' order is important.

javadoug avatar Apr 27 '13 16:04 javadoug