2015-09-10 6 views
0

Я пробовал метод POST ajax. и ниже мой кодPOST 500 (Внутренняя ошибка сервера) ajax xml

$(document).ready(
function(){ 
    $('#cloneform').click(function(){ 
     $.ajax({ 
       type  : "POST", 
       url  : "my server url", 
       data  : { inputxml: escape("<?xml version='1.0' encoding='UTF-8'?><document-id>my data</document-id>") }, 
       dataType : "text/xml", 
       contentType: "application/xml", 
       success : function(data){ 
        alert(data); 
       }, 
       error : function() { 
        alert('Failed'); 
       } 
      }); 
    }); 
} 
); 

и я попробовал то же самое с помощью почтальона я получил ответ как

<?xml version="1.0" encoding="UTF-8"?> 
<document-id>data for server</document-id> 

но с JavaScript я получаю Internal server Error.

Может ли кто-нибудь вычислить нашу ошибку?

Благодаря pkalyan

+0

Где ваш адрес сервера? Он показывает, что либо вы ошибочно указали URL-адрес, либо на бэкэнд, который ваш url ожидает, кроме того, что вы отправляете. –

+0

Мы не можем отлаживать серверную ошибку без кода на стороне сервера. – Siguza

+0

Вы проверили ошибку на бэкэнд? – NullPointerException

ответ

0

"Внутренняя ошибка сервера" не говорит нам много. Просто то, что ваш код на стороне сервера попытался сделать, вызвал ошибку. Вы должны отлаживать его на сервере.

Это говорит:

data  : { inputxml: escape("<?xml version='1.0' encoding='UTF-8'?><document-id>my data</document-id>") }, 

escape старый, сломанный способ кодирования данных для URL-адресов. Вы не кодируете данные для URL-адресов. Не используйте его здесь.

dataType : "text/xml", 

dataType описывает данные, которые вы ожидаете от сервера. text/xml не является допустимым значением для него. text есть и xml есть.

contentType: "application/xml", 

Это вероятно причиной вашей проблемы.

Вы претендуете на отправку XML-запроса. Это ложь. Вы передаете data объект, поэтому jQuery будет URL-форму Кодировать его.

Удалите эту строку или измените свой data, так что это строка XML.

Смежные вопросы