Ik heb een heel raar probleem met een een van onze klanten in mijn JavaScript.
Ik doe met jQuery een ajax-request naar mijn server en in mijn IE9 werkt het wel gewoon, ook met de browser mode teruggezet naar IE7. Ik krijg gewoon netjes de response terug.
Nu zat ik eerst te denken dat de security instellingen van de klant te strak staan afgesteld, maar dan zouden mijn eerdere ajax-requests ook gewoon falen, maar die doen het wel bij de klant. Het is dus niet dit issue: http://stackoverflow.com/...uery-and-activex-security
Het is dus niet het probleem dat IE7 ActiveX nodig heeft om fatsoenlijk Ajax requests te doen.
Cross domain zou ook geen probleem mogen zijn, want alles draait in hetzelfde subdomein.
Het irritante is alleen dat ik het probleem zoals de klant dat heeft niet kan reproduceren door de beveiligingsinstellingen van mijn IE zodanig aan te passen dat de ene request wel werkt en de andere niet.
De data variabele:
Toelichting: getFullRequestString is een functie van OpenLayers die een complete GET-request opbouwt aan de hand van het WMSLayer object. Omdat ik veel parameters mee wens te geven doe ik het via POST ipv GET en daarvoor strip ik de url er weer uit, zodat ik de data overhoudt voor de jQuery POST.
Ik heb het ook met de OpenLayers Loadurl functie geprobeerd, maar die kan alleen GET doen en werkt ook niet. De rest van de ajaxrequests gebeuren overigens wel met OpenLayers Loadurl, maar zowel jQuery als OpenLayers gebruiken het ActiveX component om de ajaxrequest te doen.
Iemand een idee waar dit mis zou kunnen gaan?
Ik doe met jQuery een ajax-request naar mijn server en in mijn IE9 werkt het wel gewoon, ook met de browser mode teruggezet naar IE7. Ik krijg gewoon netjes de response terug.
Nu zat ik eerst te denken dat de security instellingen van de klant te strak staan afgesteld, maar dan zouden mijn eerdere ajax-requests ook gewoon falen, maar die doen het wel bij de klant. Het is dus niet dit issue: http://stackoverflow.com/...uery-and-activex-security
Het is dus niet het probleem dat IE7 ActiveX nodig heeft om fatsoenlijk Ajax requests te doen.
Cross domain zou ook geen probleem mogen zijn, want alles draait in hetzelfde subdomein.
Het irritante is alleen dat ik het probleem zoals de klant dat heeft niet kan reproduceren door de beveiligingsinstellingen van mijn IE zodanig aan te passen dat de ene request wel werkt en de andere niet.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| var data = Gadget.SimgroLayer.getFullRequestString({ REQUEST: "GetFeatureInfo", EXCEPTIONS: "text/xml", BBOX: Gadget.Map.getExtent().toBBOX(), X: evt.xy.x, Y: evt.xy.y, INFO_FORMAT: "text/plain", QUERY_LAYERS: layers, WIDTH: Gadget.Map.size.w, HEIGHT: Gadget.Map.size.h }); var url = Gadget.url + "wms.ashx?"; data = data.substring(url.length); $.ajax({ type: 'POST', url: url, data: data, success: function (response) { Gadget.ShowChart(response, evt); } }); |
De data variabele:
code:
1
| "filter=hsw&LAYERS=hsw.Absoluut.ActualEvapFromEPS.Average.Actueel.2011-06-12&VERSION=1.3.0&CRS=EPSG%3A28992&TRANSPARENT=true&FORMAT=image%2Fpng&EXCEPTIONS=text%2Fxml&SERVICE=WMS&REQUEST=GetFeatureInfo&STYLES=&BBOX=249191.6%2C555344.34%2C250253.36%2C555680.34&X=538&Y=145&INFO_FORMAT=text%2Fplain&QUERY_LAYERS=hsw.Absoluut.ActualEvapFromEPS.Average.Actueel.2011-06-12%2Chsw.Absoluut.ActualEvapFromEvap.Average.Actueel.2011-06-11%2Chsw.Absoluut.Scenario_Average.Average.Nothing.2011-06-22%2Chsw.Absoluut.Scenario_Average.Average.Nothing.2011-06-21%2Chsw.Absoluut.Scenario_Average.Average.Nothing.2011-06-20%2Chsw.Absoluut.Scenario_Average.Average.Nothing.2011-06-19%2Chsw.Absoluut.Scenario_Average.Average.Nothing.2011-06-18%2Chsw.Absoluut.Scenario_Average.Average.Nothing.2011-06-17%2Chsw.Absoluut.Scenario_Average.Average.Nothing.2011-06-16%2Chsw.Absoluut.Scenario_Average.Average.Nothing.2011-06-15%2Chsw.Absoluut.Scenario_Average.Average.Nothing.2011-06-14%2Chsw.Absoluut.Scenario_Average.Average.Nothing.2011-06-13%2Chsw.Absoluut.Scenario_Maximum.Maximum.Nothing.2011-06-22%2Chsw.Absoluut.Scenario_Maximum.Maximum.Nothing.2011-06-21%2Chsw.Absoluut.Scenario_Maximum.Maximum.Nothing.2011-06-20%2Chsw.Absoluut.Scenario_Maximum.Maximum.Nothing.2011-06-19%2Chsw.Absoluut.Scenario_Maximum.Maximum.Nothing.2011-06-18%2Chsw.Absoluut.Scenario_Maximum.Maximum.Nothing.2011-06-17%2Chsw.Absoluut.Scenario_Maximum.Maximum.Nothing.2011-06-16%2Chsw.Absoluut.Scenario_Maximum.Maximum.Nothing.2011-06-15%2Chsw.Absoluut.Scenario_Maximum.Maximum.Nothing.2011-06-14%2Chsw.Absoluut.Scenario_Maximum.Maximum.Nothing.2011-06-13%2Chsw.Absoluut.Scenario_Minimum.Minimum.Nothing.2011-06-22%2Chsw.Absoluut.Scenario_Minimum.Minimum.Nothing.2011-06-21%2Chsw.Absoluut.Scenario_Minimum.Minimum.Nothing.2011-06-20%2Chsw.Absoluut.Scenario_Minimum.Minimum.Nothing.2011-06-19%2Chsw.Absoluut.Scenario_Minimum.Minimum.Nothing.2011-06-18%2Chsw.Absoluut.Scenario_Minimum.Minimum.Nothing.2011-06-17%2Chsw.Absoluut.Scenario_Minimum.Minimum.Nothing.2011-06-16%2Chsw.Absoluut.Scenario_Minimum.Minimum.Nothing.2011-06-15%2Chsw.Absoluut.Scenario_Minimum.Minimum.Nothing.2011-06-14%2Chsw.Absoluut.Scenario_Minimum.Minimum.Nothing.2011-06-13%2Chsw.Absoluut.Strategy_1.Maximum.High.2011-06-22%2Chsw.Absoluut.Strategy_1.Maximum.High.2011-06-21%2Chsw.Absoluut.Strategy_1.Maximum.High.2011-06-20%2Chsw.Absoluut.Strategy_1.Maximum.High.2011-06-19%2Chsw.Absoluut.Strategy_1.Maximum.High.2011-06-18%2Chsw.Absoluut.Strategy_1.Maximum.High.2011-06-17%2Chsw.Absoluut.Strategy_1.Maximum.High.2011-06-16%2Chsw.Absoluut.Strategy_1.Maximum.High.2011-06-15%2Chsw.Absoluut.Strategy_1.Maximum.High.2011-06-14%2Chsw.Absoluut.Strategy_1.Maximum.High.2011-06-13%2Chsw.Absoluut.Strategy_2.Minimum.High.2011-06-22%2Chsw.Absoluut.Strategy_2.Minimum.High.2011-06-21%2Chsw.Absoluut.Strategy_2.Minimum.High.2011-06-20%2Chsw.Absoluut.Strategy_2.Minimum.High.2011-06-19%2Chsw.Absoluut.Strategy_2.Minimum.High.2011-06-18%2Chsw.Absoluut.Strategy_2.Minimum.High.2011-06-17%2Chsw.Absoluut.Strategy_2.Minimum.High.2011-06-16%2Chsw.Absoluut.Strategy_2.Minimum.High.2011-06-15%2Chsw.Absoluut.Strategy_2.Minimum.High.2011-06-14%2Chsw.Absoluut.Strategy_2.Minimum.High.2011-06-13%2Chsw.Absoluut.Strategy_3.Average.High.2011-06-22%2Chsw.Absoluut.Strategy_3.Average.High.2011-06-21%2Chsw.Absoluut.Strategy_3.Average.High.2011-06-20%2Chsw.Absoluut.Strategy_3.Average.High.2011-06-19%2Chsw.Absoluut.Strategy_3.Average.High.2011-06-18%2Chsw.Absoluut.Strategy_3.Average.High.2011-06-17%2Chsw.Absoluut.Strategy_3.Average.High.2011-06-16%2Chsw.Absoluut.Strategy_3.Average.High.2011-06-15%2Chsw.Absoluut.Strategy_3.Average.High.2011-06-14%2Chsw.Absoluut.Strategy_3.Average.High.2011-06-13%2Chsw.Absoluut.Strategy_4.Minimum.Low.2011-06-22%2Chsw.Absoluut.Strategy_4.Minimum.Low.2011-06-21%2Chsw.Absoluut.Strategy_4.Minimum.Low.2011-06-20%2Chsw.Absoluut.Strategy_4.Minimum.Low.2011-06-19%2Chsw.Absoluut.Strategy_4.Minimum.Low.2011-06-18%2Chsw.Absoluut.Strategy_4.Minimum.Low.2011-06-17%2Chsw.Absoluut.Strategy_4.Minimum.Low.2011-06-16%2Chsw.Absoluut.Strategy_4.Minimum.Low.2011-06-15%2Chsw.Absoluut.Strategy_4.Minimum.Low.2011-06-14%2Chsw.Absoluut.Strategy_4.Minimum.Low.2011-06-13%2Chsw.Absoluut.Strategy_5.Maximum.Low.2011-06-22%2Chsw.Absoluut.Strategy_5.Maximum.Low.2011-06-21%2Chsw.Absoluut.Strategy_5.Maximum.Low.2011-06-20%2Chsw.Absoluut.Strategy_5.Maximum.Low.2011-06-19%2Chsw.Absoluut.Strategy_5.Maximum.Low.2011-06-18%2Chsw.Absoluut.Strategy_5.Maximum.Low.2011-06-17%2Chsw.Absoluut.Strategy_5.Maximum.Low.2011-06-16%2Chsw.Absoluut.Strategy_5.Maximum.Low.2011-06-15%2Chsw.Absoluut.Strategy_5.Maximum.Low.2011-06-14%2Chsw.Absoluut.Strategy_5.Maximum.Low.2011-06-13%2Chsw.Absoluut.Strategy_6.Average.Low.2011-06-22%2Chsw.Absoluut.Strategy_6.Average.Low.2011-06-21%2Chsw.Absoluut.Strategy_6.Average.Low.2011-06-20%2Chsw.Absoluut.Strategy_6.Average.Low.2011-06-19%2Chsw.Absoluut.Strategy_6.Average.Low.2011-06-18%2Chsw.Absoluut.Strategy_6.Average.Low.2011-06-17%2Chsw.Absoluut.Strategy_6.Average.Low.2011-06-16%2Chsw.Absoluut.Strategy_6.Average.Low.2011-06-15%2Chsw.Absoluut.Strategy_6.Average.Low.2011-06-14%2Chsw.Absoluut.Strategy_6.Average.Low.2011-06-13&WIDTH=1264&HEIGHT=400" |
Toelichting: getFullRequestString is een functie van OpenLayers die een complete GET-request opbouwt aan de hand van het WMSLayer object. Omdat ik veel parameters mee wens te geven doe ik het via POST ipv GET en daarvoor strip ik de url er weer uit, zodat ik de data overhoudt voor de jQuery POST.
Ik heb het ook met de OpenLayers Loadurl functie geprobeerd, maar die kan alleen GET doen en werkt ook niet. De rest van de ajaxrequests gebeuren overigens wel met OpenLayers Loadurl, maar zowel jQuery als OpenLayers gebruiken het ActiveX component om de ajaxrequest te doen.
Iemand een idee waar dit mis zou kunnen gaan?