I am requesting an image in the Dojo Request and it is appending ?wab_dv=2.6 in the url and failed to query in the custom widget..
Solved! Go to Solution.
CORS Issue.. Added the new URL in the proxy.config and using Proxy.ashx.
I deployed my files in the IIS and client is running web app builder using Node.js.. so unable to access the external URL.
Thanks for the help and highly appreciated.
Cheers,
Srikanth Dasari
Srikanth,
What does your esriRequest url look like Extactly?
The WAB env.js has some tests it does on url to determine if it appends the WAB version to the url.
Here are the conditions that it will not append the deploy version to:
Thank you.
I kept one more condition in env.js file to access shared path and as a security concern images are not keeping in the IIS.
Here is the url for the image which is not accessible in IE ..
Url: \\NetworkDrive\TestImages\Image1.jpg
And chrome is showing the below error.
Failed to load file://sdasari-spro/TestImages/DSCN0031.JPG: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
l @ init.js:141
20:49:28.646 init.js:141 Failed to load file://sdasari-spro/TestImages: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Please suggest me on this and would be highly appreciated.
Cheers
Srikanth Dasari
Srikanth,
and as a security concern images are not keeping in the IIS
Can you elaborate on security concern. There is no security concern when having images in a network shared folder that is setup as a virtual directory in IIS.
If you were using a virtual directory in IIS then you would not have this issue at all. You can also add a check to the env.js appendDeployVersion function as Jushan is talking about.
for example:
if(/^http(s)?:\/\//.test(url) || /^\/proxy\.js/.test(url) || /^\/\//.test(url) || /^\\\\/.test(url)){
But I really wish there was just a way to turn this feature off as I have had to modify this function before myself to look for query in the url:
if(/^http(s)?:\/\//.test(url) || /^\/proxy\.js/.test(url) || /^\/\//.test(url) || /\/query$/.test(url)){
Which I don't think is good practice for a widget developer to have to tell their users they have to modify a core WAB file just to use their widget.
Hi Robert,
Thanks for the help and I suggested virtual directory in the IIS. Now the PROBLEM is client is running web app builder using apache and we deployed/created the virtual directory in IIS.
Then I am getting the error while accessing the image is
1. OPTIONS https://hoeapp133/PhotosphereImages/images/ 404 (Not Found)
2. Response for preflight has invalid HTTP status code 404
Modification not required in env.js with the deployment in the virtual directory.
Thanks & Regards,
Srikanth Dasari
Srikanth,
Are you specifying a specific image in the url?
Image and as well as the folder...
http://servername/VirtualDirectory/images
http://servername/VirtualDirectory/
Cheers,
Srikanth Dasari
Srikanth,
OK, both of those urls are directory urls and unless you have set the Virtual Directory to allow directory browsing and you add code to deal with the return of that then you are not going to get anywhere.
CORS Issue.. Added the new URL in the proxy.config and using Proxy.ashx.
I deployed my files in the IIS and client is running web app builder using Node.js.. so unable to access the external URL.
Thanks for the help and highly appreciated.
Cheers,
Srikanth Dasari
Robert,
Life is revolving around the ESRI issues...
For resolving the CORS Issue, I tried with Proxy.ashx file and unfortunately client is using Proxy.js file.. then i configure the url's in the authorizedCrossOriginDomains in the config.json.... including port number
See the below example process flow and sample URL's
http://server1:3344/webappbuilder/apps/3 -----> trying to access the files residing in IIS --------> Virtual Directory which is http://server1//VD/Images
1. Enabled Directory browsing
2. Added Access-Control-Allow-Origin, Access-Control-Allow-Headers for the VD in IIS.
3. authorizedCrossOriginDomains:['server1:3344','server1:443']
Am i missing anything else....
Cheers,
Srikanth Dasari