3 Replies Latest reply on Dec 5, 2017 4:55 PM by Vikram Shelke

    URL contains %3A at last in APEX 5.1.1

    Vikram Shelke

      Hi All,

       

      I am working in APEX 5.1.1 and getting Session State Protection error when any branch get called which contains a URL target.

       

      Example,

      For one branch on a page which gets called on button click submit  action, URL target is as below -

      "f?p=&APP_ALIAS.:&APP_PAGE_ID.:&SESSION.:INITIALISE:&DEBUG.:RP,200:P0_ITEM1_TEMP:&P0_ITEM1.:&P200_ANCHOR."

       

      and when that branch gets executed give below error -

      Error text = "The checksum computed on the request, clear cache, argument names, and argument values ..."

       

      At Apex 4.2 it was working all fine but as application has upgraded to newer version, it has stop working.

       

      My Observations -

      1) Now generated URL is containing %3A before the checksum and after last colon in generated URL.

      2) Value in last anchor contains a : eg. "a:#asdf_link"

       

      As a workaround I removed last colon and added a comma then it works fine.

      for eg. "f?p=&APP_ALIAS.:&APP_PAGE_ID.:&SESSION.:INITIALISE:&DEBUG.:RP,200:P0_ITEM1_TEMP:&P0_ITEM1.,&P200_ANCHOR."

       

      but I am not understanding why this is behaving differently at APEX 5?  can some one please suggest? what is the best way to resolve this?

        • 1. Re: URL contains %3A at last in APEX 5.1.1
          christof_b

          Hi,

           

          your URL has a wrong syntax. Syntax for an APEX URL is: f?p=App:Page:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly

           

          So if you have the colon behind your item values you have to specify YES or NO for PrinterFriendly, e.g.:

          f?p=&APP_ALIAS.:&APP_PAGE_ID.:&SESSION.:INITIALISE:&DEBUG.:RP,200:P0_ITEM1_TEMP:&P0_ITEM1.:NO&P200_ANCHOR.

           

          Or you have to get rid of the last colon:

          f?p=&APP_ALIAS.:&APP_PAGE_ID.:&SESSION.:INITIALISE:&DEBUG.:RP,200:P0_ITEM1_TEMP:&P0_ITEM1.&P200_ANCHOR.

           

          Probably the behaviour for incorrect URLs changed from Apex 4 to 5.

          1 person found this helpful
          • 2. Re: URL contains %3A at last in APEX 5.1.1
            Sven W.

            if your page is checksum protected, and you generate the url manually, then you must use APEX_UTIL.PREPARE_URL to create a correct url including checksums.

             

            https://docs.oracle.com/cd/E71588_01/AEAPI/PREPARE_URL-Function.htm#AEAPI160

            The PREPARE_URL functions returns the f?p URL with &cs=<large hex value> appended. If you use this returned value, for example in JavaScript, it may be necessary to escape the ampersand in the URL to conform with syntax rules of the particular context. One place you may encounter this is in SVG chart SQL queries which might include PREPARE_URL calls.

             

            Better is to use the declarative way to add links to any kind of apex object (column, branch, button, etc.).

            Use make sure that you don't switch to url-syntax, but instead stay with link builder.

             

             

            • 3. Re: URL contains %3A at last in APEX 5.1.1
              Vikram Shelke

              Hi Guys,

               

              Thanks for your reply!!!

               

              @christof_b

              Second solution is working but not understood the reason why it is working.

               

              @Sven W.

              I tried recreting URL by Link Builder but don't know where to add anchor value.

               

              Also some how for anchoring we need only #asdf_link so after removing "a:" and without modifying branch URL target now it is working fine.

              1 person found this helpful