Ticketa
Registered
Използвам form , която публикува коментари. Тя е кратка с полета Име, Мейл и коментар. Когато обаче сайта е отворен, чрез друг език например от Немски е отворен на Английски website.com - Duith version, website.com/en/ - english version. Получавам проблем и формата дава грешка: "An error occurred while processing the form"
След като дебъгнах се оказа, че има някакъв "redirect" от 302 към 200, как мога да реша проблема с това пренасочване и да не се получава повече този проблем?
POST - https://website.com/?do=comments
Status - 302 Found
GET - https://website.com/en/?do=comments
Status - 200 OK
Това е моят HTML
Това е моят JS
След като дебъгнах се оказа, че има някакъв "redirect" от 302 към 200, как мога да реша проблема с това пренасочване и да не се получава повече този проблем?
POST - https://website.com/?do=comments
Status - 302 Found
GET - https://website.com/en/?do=comments
Status - 200 OK
Това е моят HTML
Код:
<form action="/?do=comments" method="post" id="f5feafacf21681" class="b-comment_form" data-ajax="true">
<div class="form-group form-group-25">
<div class="form">
<label class="required">Name:</label>
<input type="text" name="name" required autocomplete="name" />
</div>
<div class="form">
<label class="required">E-mail:</label>
<input type="text" name="email" placeholder="E-mail" required autocomplete="email" />
</div>
</div>
<div class="form">
<textarea name="text" rows="5" placeholder="Comment" required></textarea>
</div>
<div class="form">
<input type="hidden" name="action" value="add" />
<input type="hidden" name="module" value="news" />
<input type="hidden" name="module_id" value="10707" />
<button type="submit" class="btn btn-primary submit">Save</button>
</div>
</form>
Това е моят JS
Код:
// Class for submitting forms
var Form = function() {
this.init();
};
Form.prototype = {
init: function() {
var _this = this;
$(document).on('submit', 'form[data-ajax]', function(e) {
e.preventDefault();
if ( ! $(this).hasClass('form-loading') ) {
_this.submit( $(this).attr('id') );
}
});
},
submit: function(form_id, callback) {
if ( ! form_id ) form_id = 'form';
var form = $('#' + form_id), url = form.attr('action'), btn = form.find('*[type="submit"]');
if ( form.attr('enctype') == 'multipart/form-data' ) {
var str = new FormData(form[0]),
multipart = true;
str.append('form_id', form_id);
str.append('utm_url', this_url);
str.append('utm_title', this_title);
} else {
var str = form.serialize() + '&form_id=' + form_id + '&utm_url=' + this_url + '&utm_title=' + this_title,
multipart = false;
}
$.ajax({
url: url,
type: 'POST',
data: str,
dataType: 'json',
contentType: ( multipart ) ? false : 'application/x-www-form-urlencoded; charset=UTF-8',
processData: ( multipart ) ? false : true,
beforeSend: function() {
form.addClass('form-loading');
btn.addClass('process');
},
success: function(data) {
if ( data == 'error' ) return false;
if ( callback && typeof(callback) === "function" ) {
callback(form_id, data);
} else {
if ( data.answer == 'stop' ) {
error( data.error );
} else {
if ( data.success ) success( data.success );
}
if ( data.eval ) eval( data.eval );
}
},
error: function() {
error( 'An error occurred while processing the form' );
},
complete: function() {
form.removeClass('form-loading');
btn.removeClass('process');
if ( form.find('#captcha') ) reload();
}
});
}
}, $(document).ready(function() {
Form = new Form
});