Over Firefox and Firebug I have received that CSRF Validation failed. My server is running on apache2-2.2.22 and there are two proxy's All template file and forms includes csrf_token tag.
On Oct 24, 6:54 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org> wrote: > It's possible that the CSRF token isn't being sent correctly. As a test, > try adding the @csrf_exempt decorator to your view. If you no longer get > the 403, then it's a CSRF problem. > > _Nik > > On 10/24/2012 6:31 AM, Stone wrote: > > > > > > > > > My Django application is running on real server (apache2-2.2.22). > > In urls.py is mentioned: > > (r'^configSave/$', configSave), > > > My HTML is bellow. After pressing on configSave I am receiving HTTP > > 403 error page. > > > In view.py is mentioned: > > def configSave(request): > > configFile={} > > if os.path.isfile(SSO_CONF) != False: > > f = open(SSO_CONF,"r") > > for line in f: > > line = line.strip() > > if re.search('^#',line) != None: > > '''print 'This is the commentary''' > > else: > > '''print line''' > > try: > > name, value = line.split('=',2) > > configFile[name]=value > > print '<%s>%s</%s>' % (name, value, name) > > except ValueError, err: > > ''' print 'This is empty row''' > > configFile['SlaveDeactAppl']=configFile['SlaveDeactAppl'].split(','); > > > configFile['SlaveDeactScripts']=configFile['SlaveDeactScripts'].split(','); > > configFile={} > > if os.path.isfile(SSO_CONF) != False: > > f = open(SSO_CONF,"r") > > for line in f: > > line = line.strip() > > if re.search('^#',line) != None: > > '''print 'This is the commentary''' > > else: > > '''print line''' > > try: > > name, value = line.split('=',2) > > configFile[name]=value > > print '<%s>%s</%s>' % (name, value, name) > > except ValueError, err: > > ''' print 'This is empty row''' > > configFile['SlaveDeactAppl']=configFile['SlaveDeactAppl'].split(','); > > > configFile['SlaveDeactScripts']=configFile['SlaveDeactScripts'].split(','); > > c = {} > > c = Context({ > > 'config':configFile, > > 'item':2, > > }) > > c.update(csrf(request)) > > return > > render_to_response('config.html',c,context_instance=RequestContext(request)) > > > By the way how to really fast define logging mechanism which can be > > use for debugging. > > > Is this my programmer approach corrector is there any other way how to > > react on the pressing of button? > > > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// > >www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > > {% extends "index.html" %} > > {% block content %} > > <html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/ > > xhtml"> > > <script type="text/javascript"> > > top.helpID="SSO_config"; > > $(document).ready(function () { > > > function sendAjax() > > { > > $(document).ajaxSend(function(event, xhr, settings) { > > function getCookie(name) { > > var cookieValue = null; > > if (document.cookie && document.cookie != '') { > > var cookies = document.cookie.split(';'); > > for (var i = 0; i < cookies.length; i++) { > > var cookie = jQuery.trim(cookies[i]); > > if (cookie.substring(0, name.length + 1) == (name > > + '=')) { > > cookieValue = > > decodeURIComponent(cookie.substring(name.length + 1)); > > break; > > } > > } > > } > > return cookieValue; > > } > > function sameOrigin(url) { > > var host = document.location.host; // host + port > > var protocol = document.location.protocol; > > var sr_origin = '//' + host; > > var origin = protocol + sr_origin; > > // Allow absolute or scheme relative URLs to same origin > > return (url == origin || url.slice(0, origin.length + 1) > > == origin + '/') || > > (url == sr_origin || url.slice(0, sr_origin.length + > > 1) == sr_origin + '/') || > > !(/^(\/\/|http:|https:).*/.test(url)); > > } > > function safeMethod(method) { > > return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); > > } > > if (!safeMethod(settings.type) && sameOrigin(settings.url)) { > > xhr.setRequestHeader("X-CSRFToken", > > getCookie('csrftoken')); > > } > > }); > > } > > > $("#saveCfg").click(function(event){ > > > sendAjax(); > > $.ajax({ > > type: "POST", > > url: "/SSO/configSave/", > > dataType: "text", > > success: function(data) { > > alert(data); > > }, > > error: function(xhr,ajaxOptions,thrownError) { > > alert(xhr.status +" "+xhr.statusText); > > alert(thrownError); > > } > > }); > > }); > > > }); > > </script> > > > <body class="bodyClass"> > > <table class="body_table"> > > <tr> > > <th colspan="4" class="thead"><b> IP configuration</b></ > > th> > > </tr> > > <tr> > > <td>Master IP address</td> > > <td> > > <input id="mip" style="width: 100px;" > > value="{{config.MasterIPAddress}}"/> > > </td> > > <td>Slave IP address</td> > > <td> > > <input id="sip" style="width: 100px;" > > value="{{config.SlaveIPAddress}}"/> > > </td> > > </tr> > > <tr> > > <td>Master netmask</td> > > <td> > > <input id="mnetmask" style="width: 100px;" > > value="{{config.MasterIPNetmask}}"/> > > </td> > > <td>Slave netmask</td> > > <td> > > <input id="snetmask" style="width: 100px;" > > value="{{config.SlaveIPNetmask}}"/> > > </td> > > </tr> > > <tr> > > <td>Master broadcast</td> > > <td> > > <input id="mbroadcast" style="width: 100px;" > > value="{{config.MasterIPBroadcast}}"/> > > </td> > > <td>Slave broadcast</td> > > <td> > > <input id="sbroadcast" style="width: 100px;" > > value="{{config.SlaveIPBroadcast}}"/> > > </td> > > </tr> > > <tr> > > <td></td> > > <td></td> > > <td></td> > > <td></td> > > </tr> > > <tr> > > <td>Lancard name</td> > > <td><span id="cardname"></span>{{config.LanCardName}}</td> > > <td>MAC address</td> > > <td><input id="cardmac" value="{{config.LanCardMAC}}"/></td> > > </tr> > > <tr> > > <th colspan="4" class="thead"><b> Configuration > > parameters</b> > > </th> > > </tr> > > <tr> > > <td>Replication frequency</td> > > <td> > > <select id="freq"> > > <option {% if config.MasterBackupFrequency = > > "daily" %} > > selected="selected"{% endif %}>daily</option> > > <option {% if config.MasterBackupFrequency = > > "Monday" %} > > selected="selected"{% endif %}>Monday</option> > > <option {% if config.MasterBackupFrequency = > > "Thusday" %} > > selected="selected"{% endif %}>Thusday</option> > > <option {% if config.MasterBackupFrequency = > > "Wednesday" %} > > selected="selected"{% endif %}>Wednesday</option> > > <option {% if config.MasterBackupFrequency = > > "Thursday" %} > > selected="selected"{% endif %}>Thursday</option> > > <option {% if config.MasterBackupFrequency = > > "Friday" %} > > selected="selected"{% endif %}>Friday</option> > > <option {% if config.MasterBackupFrequency = > > "Saturday" %} > > selected="selected"{% endif %}>Saturday</option> > > <option {% if config.MasterBackupFrequency = > > "Sunday" %} > > selected="selected"{% endif %}>Sunday</option> > > </select> > > </td> > > <td>Replication time</td> > > <td><input style="width: 40%;" id="backuptime" > > value="{{config.MasterBackupStartTime}}"/></td> > > </tr> > > <tr> > > <td valign="top">Slave deactivated application</td> > > <td style="width: 20%;"><span id="appl"> > > {% for appl in config.SlaveDeactAppl %} > > {{ appl }}<br> > > {% endfor %} > > </span></td> > > <td valign="top">Slave deactivated scripts</td> > > <td style="width: 20%;"><span id="scripts"> > > {% for appl in config.SlaveDeactScripts %} > > {{ appl }}<br> > > {% endfor %} > > </span></td> > > </tr> > > <!-- <div id="buttonPanel" style="display: block;"> > > <button id="saveTime" class="submitButton ui-state-default ui- > > corner-all ui-priority-primary">Save replication parameters</button> > > </div> --> > > <tr> > > <th colspan="4" class="thead"><b> Replication parameters</ > > b> > > </th> > > </tr> > > <tr> > > <td>Replication enable</td> > > <td><input type="checkbox" id="replEnable" {% if > > config.ReplicationEnable = "yes" %}checked="checked"{% endif %}/></td> > > <td>Account used for replication</td> > > <td> > > <select id="account"> > > <option {% if config.ReplicationAccount = "engr" > > %} > > selected="selected"{% endif %}>engr</option> > > <option {% if config.ReplicationAccount = "root" > > %} > > selected="selected"{% endif %}>root</option> > > </select> > > </td> > > </tr> > > <tr> > > <td>ReplicationRetryInterval</td> > > <td><span > > id="interval">{{config.ReplicationRetryInterval}}</span></ > > td> > > <td>ReplicationRetryCount</td> > > <td><span id="count">{{config.ReplicationRetryCount}}</span></td> > > </tr> > > <tr valign="center" align="center" colspan="4"> > > <td colspan="4"> > > <input type="button" id="saveCfg" valign="center" > > class="submitButton ui-state-default ui-corner-all ui-priority- > > primary" onclick="javascript:location.href='/SSO/configSave/';" > > style="width:200px;" value="Save complete settings"/> > > </td> > > </tr> > > </table> > > </body> > > </html> > > {% endblock %} -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.