cool, thanks. I could always use the SO cred.

e // pfooti

On Fri, Sep 26, 2014 at 11:58 AM, highdown <[email protected]> wrote:

> The case definitely matters. Used lowercase 'b' and it works like a charm.
> I will give you credit on Stack Overflow. If you want points, please answer
> officially and I will accept your answer.
>
> Thanks... :-)
>
> On Friday, September 26, 2014 2:17:18 PM UTC-4, Eric Eslinger wrote:
>>
>> correction, I do
>>
>> $http.get('http://example.com/bindata.jpg', {responseType:
>> 'arraybuffer'})
>>
>> dunno if the camelcase is significant, probably is.
>>
>> e
>>
>> On Fri, Sep 26, 2014 at 11:15 AM, Eric Eslinger <[email protected]>
>> wrote:
>>
>>> I do this: $http.get('http://example.com/bindata.jpg', {responseType:
>>> 'arrayBuffer'})
>>>
>>> all the time and it works.
>>>
>>> On Fri, Sep 26, 2014 at 10:35 AM, highdown <[email protected]> wrote:
>>>
>>>> I posted this issue on Stack Overflow at  AngularJS GET byte[] error
>>>> when downloading binary data using ASP.NET Web API
>>>> <http://stackoverflow.com/questions/26059955/angularjs-get-byte-error-when-downloading-binary-data-using-asp-net-web-api>
>>>> .
>>>>
>>>> I created a simple test case to reproduce this issue. The GET method on
>>>> the server simply generates a byte[] that has 256 elements with values
>>>> 0-255.
>>>>
>>>> When I wrote an alternate implementation in my SPA using vanilla
>>>> XMLHttpRequest the data is read properly and the returned data is in the
>>>> correct array format.
>>>>
>>>> There are 3 issues that I have documented at the link above.
>>>>
>>>>    1. The first issue with the Angular code is that it interprets the
>>>>    data as a string, NOT a byte array, while the XMLHttpRequest code
>>>>    interprets that code correctly as a byte array.
>>>>    2. The second issue is that the AngularJS code corrupts all values
>>>>    greater than 127 (i.e., 128-255). See link above.
>>>>    3. The third issue is that data is lost. The reconstructed data in
>>>>    the AngularJS code had only 217 bytes instead of 256 bytes.
>>>>
>>>> It seems logical that there are two possibilities: 1) My AngularJS code
>>>> has a error or missing information (likely, and I am all ears), or 2)
>>>> AngularJS has a bug that is causing this.
>>>>
>>>> The code that I used is documented at the link provided above, along
>>>> with detailed tests/results.
>>>>
>>>> I found something when I stepped through the Angular $http code that
>>>> didn't seem right to me. In these code blocks, the responseType was set to
>>>> "arrayBuffer", which is correct.
>>>>
>>>>     function $http(requestConfig) {
>>>>       var config = {
>>>>         method: 'get',
>>>>         transformRequest: defaults.transformRequest,
>>>>         transformResponse: defaults.transformResponse
>>>>       };
>>>>       var headers = mergeHeaders(requestConfig);
>>>>
>>>> ************************************************************
>>>> ************
>>>>
>>>>   // TODO(vojta): fix the signature
>>>>   return function(method, url, post, callback, headers, timeout,
>>>> withCredentials, responseType) {
>>>>     var status;
>>>>
>>>> ************************************************************
>>>> ************
>>>>
>>>>       if (responseType) {
>>>>         try {
>>>>           xhr.responseType = responseType;
>>>>         } catch (e) {
>>>>           // WebKit added support for the json responseType value on
>>>> 09/03/2013
>>>>           // https://bugs.webkit.org/show_bug.cgi?id=73648. Versions
>>>> of Safari prior to 7 are
>>>>
>>>> ************************************************************
>>>> ************
>>>>
>>>>
>>>> However, in the following code block, the responseType value seems to
>>>> have been cleared.
>>>>
>>>>             // responseText is the old-school way of retrieving
>>>> response (supported by IE8 & 9)
>>>>             // response/responseType properties were introduced in XHR
>>>> Level2 spec (supported by IE10)
>>>>             response = ('response' in xhr) ? xhr.response :
>>>> xhr.responseText;
>>>>
>>>>
>>>> From what I have read, the responseType should be set to “arrayBuffer”
>>>> at this point in the code. Other than this data possibly being incorrect at
>>>> the point in the code, I do not have a clue as to what might be causing
>>>> this issue.
>>>>
>>>> I have been working on an Angular fix for over a week, but have only
>>>> found a solution that is outside the Angular Framework.
>>>>
>>>> Thanks much for your consideration...
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "AngularJS" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/angular.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "AngularJS" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/angular.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to