Rally Software

Proxy not appearing to send a GET request

  • 1.  Proxy not appearing to send a GET request

    Posted Oct 18, 2016 11:46 AM

    From within an app, it appears I need to change a proxy to use the GET method to read data and not the OPTIONS method. I have attempted to set the 'method' for the proxy but it does not appear to be taking effect.

     

    var operation = new Ext.data.Operation({
      action: 'read',
    });

    var proxy = new Ext.data.proxy.Ajax({
      type: 'ajax',
      url: testURL,
      method: 'GET',
      withCredentials: true
    });

    proxy.read( operation );

     

    Request Headers from debugger (notice OPTIONS)

     

    OPTIONS /web/datasource?_dc=1476803593106&page=1&start=0&limit=25 HTTP/1.1
    Host: <removed>
    Connection: keep-alive
    Access-Control-Request-Method: GET
    Origin: https://rally1.rallydev.com
    User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36
    Access-Control-Request-Headers: x-requested-with
    Accept: */*
    Referer: <hidden>
    Accept-Encoding: gzip, deflate, sdch, br
    Accept-Language: en-US,en;q=0.8

     

    The following code works but is not independent of a data store:

    var createCORSRequest = function(method, url) {
      var xhr = new XMLHttpRequest();
      if ("withCredentials" in xhr) {
        // Most browsers.
        xhr.open(method, url, true);
      } else if (typeof XDomainRequest != "undefined") {
        // IE8 & IE9
        xhr = new XDomainRequest();
        xhr.open(method, url);
       } else {
         // CORS not supported.
         xhr = null;
      }
      return xhr;
    };

    var url = testURL;
    var method = 'GET';
    var xhr = createCORSRequest(method, url);

    xhr.onload = function() {
      // Success code goes here.
      alert( xhr.response );
    };

      xhr.onerror = function() {
      // Error code goes here.
    };

    xhr.withCredentials = true;
    xhr.send();