I am trying to set up the proxy for my web application because the request exceeds 2000 characters. I set up the proxy as described in ESRI site. When I run my application I get the error as shown below

**"Unable to load http://localhost/proxy.ashx?http://T...nction/execute Status:403"**

I put my web application (one HTML page with javascript api code) and the two proxy files to my development machine's root folder. This machine is XP.

I have Geoprocessing service running on another machine (TestServer). When the length of GP request exceeds the limit, the application tries to use proxy and that is when I see the error above. This machine is Win 2008.

Status 403 is Forbidden page error.

  • What do the ISS logs say? Commented Mar 16, 2013 at 7:09

2 Answers 2


Have you created an application, in IIS manager, using the folder that the proxy is located? If the folder is say agsproxy then you would have


In the javascript, you would have

esri.config.defaults.io.proxyUrl = "/agsproxy/proxy.ashx";

You may want to use CORS though now.. removing the need for proxy (better performance)

//add CORS servers
  • Thank for the response. Yes I did create the application in IIS Manager as described in ESRI site. I tried by have in the files in IIS rootfolder and also in another folder created as application. None of these seems to work. What is CORS? How do I use in Javascript API page? Let me do some research? Any ESRI document on this? Is there anything to do with proxy and Geoprocessing Service call?
    – Cyril
    Commented Mar 15, 2013 at 20:12
  • 1
    Just add the above CORS line in your initialize function (init()) and that's it! help.arcgis.com/en/webapi/javascript/arcgis/jssamples/…
    – awesomo
    Commented Mar 15, 2013 at 21:33
  • I get javascript error esri.config.defaults.io.corsEnabledServers is null. Then I tried esri.config.defaults.io.corsEnabledServers = ['vdev03:6080/'];and esri.config.defaults.io.corsEnabledServers = ['vdev03']; Did not work.
    – Cyril
    Commented Mar 16, 2013 at 3:54
  • You should push onto the array because there are a few esri servers by default added. esri.config.defaults.io.corsEnabledServers.push('vdev03:6080');
    – awesomo
    Commented Mar 18, 2013 at 16:54
  • I am getting "status: 0" , could you please help me on this
    – Saj
    Commented Jan 27, 2017 at 13:02

You must add the final destination URL to the proxy.config file for the proxy handler. If you don't, it will respond with a 403 Forbidden code.

If "mustMatch" and "matchAll" are both set to true, then the proxy page will determine if the URL to be proxied starts with the same text as the serverUrl in configuration. You may need to prefix the URL with the protocol, e.g. https://myserver.com/arcgis.

  • Thanks for responding. I do have the full path. I tried with and without /execute at the end. /exiecute is added by the GP service exceute method. <serverUrl url="vdev03:6080/arcgis/rest/services/MapLegalDescriptionFunction/…" matchAll="false"></serverUrl></serverUrl> </serverUrls>
    – Cyril
    Commented Mar 15, 2013 at 19:35
  • Since matchAll is false, the proxy page is doing a full string comparison - you should use the full URL that is being passed to proxy.ashx for the url argument.
    – mwalker
    Commented Mar 15, 2013 at 20:17
  • I had already tested with both MatchAll and MustMatch as true. It did not help me.
    – Cyril
    Commented Mar 16, 2013 at 3:54
  • If the line in the above comment is a copy-and-paste, then you still need to put http:// at the beginning of the url.
    – mwalker
    Commented Mar 18, 2013 at 16:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.