Here is my code:
var fd = new FormData(document.querySelector('#form-step1'));
var xhr = new XMLHttpRequest();
xhr.open('POST', '/Handlers/newAccount_handler.php', true);
xhr.send(fd); // this line is causing a 500 Internal Server Error and the data is not saved to the MySQL table
Why is the last line causing a 500 Internal Server Error? Is there anything wrong with the code or do I need to log anything first to see?
asked Oct 9, 2013 at 7:41
James AndersonJames Anderson
5562 gold badges15 silver badges41 bronze badges
1
There is nothing wrong with the last line. The ‘500 Internal Server Error’ is simply the result the server sends back as the result of the request.
This means that ‘/Handlers/newAccount_handler.php’ is the real problem. If you open this URL in a browser it will show you an error.
answered Oct 9, 2013 at 9:07
5
This seems a bit old, but I’ve had similar issue. It’s worth checking what the value of ‘#form-step1’ you are sending. In my case if the value contained quotes it would throw an error, but with simple text it worked fine.
answered Nov 21, 2013 at 0:04
JoeyJoey
3611 silver badge4 bronze badges
I have this javascript in an aspx page and when executed gives me a 500 Internal Server Error for status. What I am trying to do is call a web service out on the net using XmlhttpRequest. What am I doing wrong?
Code Snippet
<%@ Page Language=»C#» AutoEventWireup=»true» CodeFile=»Default2.aspx.cs» Inherits=»Default2″ %>
<html xmlns=»http://www.w3.org/1999/xhtml»>
<head runat=»server»>
<title>Untitled Page</title>
<script language=»javascript» type=»text/javascript»>
function initiateConversion()
{
xmlhttprequest = createRequestObject();
var url = «http://www.webservicex.net/CurrencyConvertor.asmx/»
+ «ConversionRate?FromCurrency=?FromCurrency=»
+ document.getElementById(«FromBox»).value
+ «&ToCurrency=»
+ document.getElementById(«ToBox»).value ;
xmlhttprequest.open(«GET», url, true);
xmlhttprequest.onreadystatechange = getData;
xmlhttprequest.send(null);
}
function createRequestObject()
{
if (window.XMLHttpRequest)
{
var xmlhttprequest = new XMLHttpRequest();
return xmlhttprequest;
}
else if (window.ActiveXObject)
{
return xmlhttprequest = new ActiveXObject(«Microsoft.XMLHTTP»);
}
}
function getData()
{
if ((xmlhttprequest.readyState == 4) &&( xmlhttprequest.status == 200))
{
var myXml = xmlhttprequest.responseXML;
var xmlobject = null;
var XMLText = null;
if (window.ActiveXObject)
{
XMLText = myXml.childNodes[1].firstChild.nodeValue;
}
else
{
XMLText = myXml.childNodes[0].firstChild.nodeValue;
}
var table = document.getElementById(«table1»);
var row = table.insertRow(table.rows.length);
var tablecell = row.insertCell(row.cells.length);
tablecell.appendChild(document.createTextNode(document.getElementById(«FromBox»).value
+ » to «
+ document.getElementById(«ToBox»).value));
var tablecell = row.insertCell(row.cells.length);
tablecell.appendChild(document.createTextNode(XMLText));
table.setAttribute(«border», «2»);
} else
{
alert(«Problem retrieving XML data»);
}
}
</script>
</head>
<body>
Currency To Convert From:
<select id=»FromBox»>
<option value=»USD» selected=»true»>USD — U.S. Dollar</option>
<option value=»GBP»>GBP — British Pound</option>
<option value=»EUR»>EUR — Euro</option>
<option value=»JPY»>JPY — Japanese Yen</option>
</select>Currency To Convert To:
<select id=»ToBox»>
<option value=»USD»>USD — U.S. Dollar</option>
<option value=»GBP» selected=»true»>GBP — British Pound</option>
<option value=»EUR»>EUR — Euro</option>
<option value=»JPY»>JPY — Japanese Yen</option>
</select><br /><br />
<input id=»button1″ value=»Click to convert currency» onclick=»javascript:initiateConversion();» /><br /><br />
<table id=»table1″></table>
</body>
</html>
При отправке XMLHttpRequest.send — 500 Server Internal Error.
Есть 2 сервера.
CentOS 5.8
httpd-2.2.3-63.el5.centos.1
PHP 5.3.14
Все работает ОК.
CentOS 6.2
httpd-2.2.15-15.el6.centos.1
PHP 5.3.14
500 Server Internal Error
Код одинаковый, все одинаковое, различае только в версии centOS и Apache.
Я полагаю что проблема в настройках апача? Но что конкретно не так?
-
Вопрос заданболее трёх лет назад
-
5844 просмотра
Пригласить эксперта
Дык а в error.log апачевском что видно?
Проблема решена… правда я так и не понял в чем она была. Вообщем я ничего не делал, единственно что перезагрузил апач, проверил еще раз все работает ошибки 500 больше нет, хотя до этого рестарт тоже делал.
2DevMan, просто при заходе все работало, но когда отправлял по XMLHttpRequest файл (в запросе передавался файл) другому скрипту на сервере была ошибка 500
-
Показать ещё
Загружается…
04 июн. 2023, в 16:13
2000 руб./за проект
04 июн. 2023, в 16:13
3000 руб./за проект
04 июн. 2023, в 16:06
2000 руб./за проект
Минуточку внимания
У меня проблема с веб-сервисом, который мне нужно вызвать.
Ситуация
Мне нужно получить информацию от веб-сервиса, созданного компанией, в которой я работаю. Если я попытаюсь получить информацию через SOAPUI, проблем не возникнет, и я получу нужную мне информацию в ответе. Но после редактирования скрипта, чтобы я мог получить его через браузер, я получаю ошибку 500.
Код
function soap() {
try {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'https://**testserver**/test/services/smsproxy2.smsproxy2HttpsSoap11Endpoint', true);
// build SOAP request
var sr =
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sms="http://**service**/smsreport">' +
'<soapenv:Header/>' +
'<soapenv:Body>' +
'<sms:GetSMSReport>' +
'<sms:FromDate>2015-01-01</sms:FromDate>' +
'<sms:ToDate>2015-12-12</sms:ToDate>' +
'</sms:GetSMSReport>' +
'</soapenv:Body>' +
'</soapenv:Envelope>';
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert('Working fine! See the console.');
}
}
}
// Send the POST request
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
var result = xmlhttp.send(sr);
}
catch (error) {
alert('An error occurred: ' + error);
}
}
soap();
Объяснение
Весь этот код помещается в html-файл. Этот код находится между тегами сценария в теге заголовка html. Части **testserver** и **service** в реальном сценарии отличаются.
Проблема
Как только я открываю этот (html) файл в браузере, я получаю сообщение 500 (внутренняя ошибка) в консоли. Строка, указанная в этом сообщении, является строкой, для которой установлено действие xmlhttp.send(sr).
Эффект
Я не могу получить нужную мне информацию на сервере. Поэтому я не могу ничего показать на веб-странице.
Вопросы
Почему я получаю ошибку 500 в браузере и работает ли это без проблем в пользовательском интерфейсе SOAP? Вызываемый URL-адрес точно такой же в браузере, как и в пользовательском интерфейсе SOAP, поэтому это невозможно. Как мне это решить?
Пытался
Много чего, но ничего не помогало.
My method in views.py try get product_slug because he need product = Product.objects.get(slug=product_slug) and add this product in the cart. U try use XMLHttpRequest with JS but have error 500.What I’am doing wrong?
urls.py
url(r'^cart/create/$', views.cart_create, name='cart_create'),
views.py
def cart_create(request):
cart = Cart(request)
product_slug = request.GET.get('product_slug')
product = Product.objects.get(slug=product_slug)
cart.add(product=product)
return JsonResponse({'200':'OK'})
product_list.html
<a href="javascript:void(0);" class="add_to_cart" data-slug="{{ product.slug }}">Add</a>
base.html
var add_to_cart = document.getElementsByClassName('add_to_cart');
for(var i = 0; i < add_to_cart.length; i++) {
product_slug = add_to_cart[i].getAttribute('data-slug')
add_to_cart[i].onclick = function() {
loadA(product_slug)
}
}
function loadA(product_slug) {
var xhr = new XMLHttpRequest();
url = "{% url 'cart:cart_create' %}" + product_slug
xhr.open('GET', url);
xhr.send();
if (xhr.status != 200) {
console.log('no')
} else {
console.log('ye')
}
}
In console.log output no and error (Internal Server Error). Help me, please.
I try rewrite this code with clean javascript/XMLHttp > without jQuery/Ajax
$(".add_to_cart").click(function() {
product_slug = $(this).attr("data-slug")
data = {
product_slug: product_slug,
},
$.ajax({
type: "GET",
url: "{% url 'cart:cart_create' %}",
data: data,
success: function(data) {
$(".cart_score").empty().append(data.cart_length + " товаров " + data.cart_total + " ₽")
},
});
});
