A call to PrintTask in ArcGIS Server 10.1 does not use POST in IE browser

2334
2
08-18-2014 03:39 AM
MiriEshel
New Contributor III

Hi,

One
of our clients is trying to use a PrintTask that is hosted in one of our
servers (ArcGIS Server 10.1). The printed map can contain few graphic elements.
That's why the call to the task supposed to be done automatically by POST and not GET.  It works well in Chrome,
Mozilla, IE10 and up. Unfortunately it does not work in IE (specially IE8 and IE9).

The only way to do it is using a Proxy that forces the request to be sent by POST but the client does not allow a proxy on his server from Information
Security reasons.
When we put a Proxy in one of our servers, the end user must set the option of "Access data sources across domains"
under Security Tab to enable or prompt (if it is disabled, it does not work) and this is not acceptable.

My questions are:

  1. Why in IE it does not send it by POST (it does not send it at all in case of more than one-two graphics)
  2. If we'll install ArcGIS
    Server 10.2.2 instead of the existed version of ArcGIS Server 10.1, will the PrintTask work as expected also for IE ?
  3. What else can we try? As I mentioned, Proxy is not an option.

Enclosed with the code, with which you can reproduce the problem. Few Notes:

  1. There is a loop in the code
    that displays graphic elements. If it runs with one element, it works OK but with more than one, it gives an error in IE.
  2. There are two lines that are now in comment :

//esriConfig.defaults.io.proxyUrl = "http://82.166.80.134/PrintMap/proxy.ashx";

//esriConfig.defaults.io.alwaysUseProxy = false;

If you uncomment them, the PrintTask will use proxy but the option of "Access data sources across domains" must be enabled in IE.

 

Thanks a lot,

Miri

0 Kudos
2 Replies
RiyasDeen
Occasional Contributor III

Hi Miri,

IE strictly follows the URL length of 2048 characters. if you have a request which is longer than 2048 you need to use POST method, for which you need proxyurl.

What is your client's security concern about using proxy page.

If you can't convince your client to use proxy page and still want to use IE, then you may have to build a post request something like below (NOT RECOMMENDED)

Also move this discussion to ArcGIS API for JavaScript for better help

Untitled.png

PS: Don't know how chrome is toggling between get and post request, if you find out how do post back.

0 Kudos
MiriEshel
New Contributor III

Hi Riyas,

Thank you for your reply. I would like to be able to build a POST request from the beginning, I just don't know how to do it in the code that calls the printTask.

The client insists to prevent using Proxy on his site. He thinks it is a Security breach and in a way,  he is right.

Thanks again,

Miri

0 Kudos