asp.net web api - Breeze Error message "; " with status OK in Chrome -


i using cors support in webapi , strange result set entitymanager thought status code 200 , data server. response gets

the error message (truncated):

{message: "; ", statustext: "ok", status: 200, url:"http://localhost:61808/odata/servers?$filter=id%20gt%2080&$top=20&$expand=owner%2capplications"} 

my datacontext:

(function () {   angular.module('app').factory('datacontext', datacontext);    datacontext.$inject = ['entitymanagerfactory'];    function datacontext(entitymanagerfactory) {     var entityquery = breeze.entityquery;     var manager = entitymanagerfactory.newmanager();  return {   getservers: getservers };  function getservers() {   return entityquery     .from('servers')     .expand('owner, applications')     .where('id', 'gt', 80)     .take(20)     .totype('server')     .using(manager)     .notracking()     .execute()     .then(success)     .catch(error); }  function success(response) {   return response.results; }  function error(error) {   console.log(error); } 

my webapi web.config:

<httpprotocol>   <customheaders>     <add name="access-control-allow-origin" value="*" />     <add name="access-control-allow-headers" value="content-type, dataserviceversion, maxdataserviceversion" />     <add name="access-control-allow-methods" value="get, post, put, delete, options, merge" />   </customheaders> </httpprotocol> 

this code runs fine in internet explorer. however, error thrown in chrome though payload delivered! ideas?

there bug in current version of datajs 1.1.2 filed under issues on codeplex @ https://datajs.codeplex.com/workitem/756.

in datajs.js replace readresponseheaders with:

var readresponseheaders = function (xhr, headers) {   /// <summary>reads response headers array.</summary>   /// <param name="xhr" type="xmlhttprequest">http request response available.</param>   /// <param name="headers" type="array">target array fill name/value pairs.</param>    var responseheaders = xhr.getallresponseheaders().split(/\r?\n/);   var i, len;    (i = 0, len = responseheaders.length; < len; i++) {     if (responseheaders[i]) {       var header = responseheaders[i].split(": ");       headers[header[0]] = header[1];     }   }    // fix handle firefox cors bug   var requiredheaders = [     'content-type', 'dataserviceversion'      /*, 'content-length'      , 'cache-control'      , 'access-control-expose-headers'      , 'x-content-type-options'      , 'date'*/   ];    (i = 0; < requiredheaders.length; i++) {     if (headers[requiredheaders[i]] === undefined &&       xhr.getresponseheader(requiredheaders[i])) {       headers[requiredheaders[i]] = xhr.getresponseheader(requiredheaders[i]);     }   } }; 

and in web.config in webapi add:

        <add name="access-control-expose-headers" value="dataserviceversion" /> 

Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -