SPServices IE Browser Compatibility Issue

Mar 24 at 9:09 PM
Edited Mar 24 at 9:32 PM
Hi everyone,

We have a problem related to the Compatibility settings on the IE browser and SPServices GetListItems.

At VA, we have several scripts using SPServices (jQuery/HTML5) which work fine as long as the Compatibility View Settings on the browser is set to either of the following:
  • “va.gov” is added to “Websites added to Compatibility View”, and/or
  • “Display intranet sites in Compatibility View” is checked.
However, the new CIO site is forcing everyone to remove everything in the Compatibility View Setting of their browsers before they can be redirected to the site.

But with the new Compatibility setting the SPServices GetListItems stops talking to SharePoint!!! And as soon as we reset the Compatibility view it works.

We are using jquery-1.11.1.min.js and jquery.SPServices-2014.02.min.js.

The following is an example of one of the queries:
<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" language="javascript" src="http://vaww.oed.wss.va.gov/process/Public/jquery/jquery-1.11.1.min.js"></script>
    <script type="text/javascript" language="javascript" src="http://vaww.oed.wss.va.gov/process/Public/jquery/jquery.SPServices-2014.02.min.js"></script>
    <script>
        $(document).ready(function() {
            var listProcesses = "{4AB19761-E153-4DB0-AD5A-6E9A42571488}";
            var spSiteURL = "http://vaww.oed.wss.va.gov/process";
            var query = "<Query><Where><Eq><FieldRef Name='Process_x0020_Name' /><Value Type='Text'>AAA</Value></Eq></Where></Query>";
            var queryView = "<ViewFields><FieldRef Name='Process_x0020_Map_x0020_Diagram' /><FieldRef Name='Process_x0020_Map_x0020_Diagram_' /></ViewFields>";
            $().SPServices({
                siteUrl: spSiteURL,
                operation: "GetListItems",
                listName: listProcesses,
                CAMLViewFields: queryView,
                CAMLQuery: query,
                async: false,       
                completefunc: function (xData, Status) 
                {
                    alert(xData.responseXML.xml);
                }
            });
        });
    </script>
</head>
<body>
</body>
</html>
I added siteUrl and it didn’t help. Alerting on “xData.responseXML.xml” generates an Undefined. Again, as soon as we change the Compatibility on the IE browser everything works.

Would greatly appreciate any help and your advice, we have looked everywhere to no avail and we are totally stuck.

Thank you,

Tony
Coordinator
Mar 25 at 2:24 AM
Tony:

I can't think of a reason the compatibility setting would cause this to break. There are a lot of variables in every environment, so stuff like this can be tough to diagnose.

The right option is webURL, not siteUrl. If you're making the call from the "/process" site, then you don't need to specify it.

I'd suggest you look at the network traffic and see if the request is even going out, then debug from there.

M.