Attempting to use the Kendo DataSource object to call a WebAPI controller in another project. This is a cross-domain call. I am able to get this to work when using $.ajax directly but it get a "access is denied" error when using the DataSource. Here's the setup:
I have the following in the web.config of the API project to allow cross-domain calls:
The error handler is called and the response.errorThrown is "Access is denied". I can get around this by changing the security setting in IE Internet Options / Security / Internet Zone / Custom Level / Miscellaneous / Allow data sources across domains. However, this will NOT be allowed in production. It works okay in Chrome and Firefox but not IE9. Again, if I do a straight ajax call it works:
Any ideas?
jQuery.support.cors = true;function sendRequestKendo(url) { ds = new kendo.data.DataSource({ transport: { read: { url: url, type: "GET" } }, change: onDataChanged, error: function(response) { alert(response.errorThrown); $("#loginError").show(); } }); ds.read();}function onDataChanged() { $("#results").html(kendo.stringify(ds.view()));}I have the following in the web.config of the API project to allow cross-domain calls:
<httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="http://mydomain.com" /> <add name="Access-Control-Allow-Headers" value="Content-Type" /> </customHeaders></httpProtocol>The error handler is called and the response.errorThrown is "Access is denied". I can get around this by changing the security setting in IE Internet Options / Security / Internet Zone / Custom Level / Miscellaneous / Allow data sources across domains. However, this will NOT be allowed in production. It works okay in Chrome and Firefox but not IE9. Again, if I do a straight ajax call it works:
$.ajaxSetup({ type: "GET", contentType: "application/json; charset=utf-8", dataType: "json"});$.ajax({ url: url, success: function() { }, error: function(response, status, err) { $("#loginError").show(); $("#errorMessage").html(err); }});Any ideas?