Can you tell me what value to change in v2 beta 5 that will cause esri leaflet to default to JSONP instead of CORS?
Our SSO setup returns a '302 found' when using the default CORS requests. If I make the change below, everything works fine.
https://github.com/Esri/esri-leaflet/blob/master/src/Support.js#L1
export var cors = ((window.XMLHttpRequest && 'withCredentials' in new window.XMLHttpRequest()));
export var cors = false;
The docs show that the old way to turn off default CORS is:
If you cannot or do not want to enable CORS on your server the following code will make all requests utilize JSONP.
L.esri.get = L.esri.Request.get.JSONP;
But release notes for Beta 2 say:
L.esri.Request has been removed. Please use L.esri.get, L.esri.get.CORS, L.esri.get.JSONP,L.esri.post or L.esri.request directly.
What is the new way to do this in beta 2?
Solved! Go to Solution.
Esri Leaflet only falls back onto JSONP when POSTing from a client browser that doesn't support CORS. if you'd like to trick our plugin into thinking that the end users browser doesn't support CORS, you can call...
L.esri.Support.cors = false;
Afterward, when calling L.esri.request(), JSONP will be used if its necessary to POST.
// to send a single JSONP ajax request L.esri.request('http://sampleserver6.arcgisonline.com/arcgis/rest/services/', { fakeParam: 'value that will push the request length past 2000 characters' }, function (error, response) { if (error) { console.log(error) } else { console.log(response) } })
If you need to POST across domains, please remember that it will be necessary to invoke a proxy.
we'll be updating the API reference soon, so i'll make sure the new information pertaining to L.esri.request() is as clear as possible.
Esri Leaflet only falls back onto JSONP when POSTing from a client browser that doesn't support CORS. if you'd like to trick our plugin into thinking that the end users browser doesn't support CORS, you can call...
L.esri.Support.cors = false;
Afterward, when calling L.esri.request(), JSONP will be used if its necessary to POST.
// to send a single JSONP ajax request L.esri.request('http://sampleserver6.arcgisonline.com/arcgis/rest/services/', { fakeParam: 'value that will push the request length past 2000 characters' }, function (error, response) { if (error) { console.log(error) } else { console.log(response) } })
If you need to POST across domains, please remember that it will be necessary to invoke a proxy.
we'll be updating the API reference soon, so i'll make sure the new information pertaining to L.esri.request() is as clear as possible.