POST 500(内部服务器错误)

POST 500 (Internal Server Error) ajax xml

本文关键字:错误 服务器 内部 POST      更新时间:2023-09-26

我已经尝试了ajax POST方法。下面是我的代码

$(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

"内部服务器错误"并没有告诉我们太多。只是服务器端代码试图做的事情抛出了一个错误。您应该在服务器上调试它。

说:

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 is. xml is.

contentType: "application/xml",

这是可能是问题的原因。

你声称要发送一个XML格式的请求。这是个谎言。你传递给data一个对象,所以jQuery将URL表单编码它。

删除这一行或更改您的data,使它是一个XML字符串