0

我检查了服务器端,直接使用浏览器 GET 或 jquery.ajax GET 调用,它都可以返回正确的页面。也就是说,服务器端没有问题。

但是当我尝试使用以下代码进行 ajax 调用时,我总是收到 500 内部服务器错误。奇怪的是我查看了控制台日志,似乎参数没有成功传输到服务器。到达服务器时的 'type' 和 'source' 参数都为空。

相关代码如下。newXMLHttpRequest() 只是一种为不同浏览器返回正确对象的方法,已被验证为正确。

有人对出了什么问题有任何想法吗?

function updatePage(html){
    var change =html;
    var contents = document.getElementById("contents");
        contents.innerHTML = change;
}

function submit(){
    var t = document.getElementById("type").value;
    var source = document.getElementById("src").value;

    var req = newXMLHttpRequest();
    req.onreadystatechange = getReadyStateHandler(req, updatePage);
    req.open("GET", "RSSFetchServlet.do",true);
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    req.send("type="+t+"&source="+source);
}
4

2 回答 2

0

5xx 错误意味着您的服务器端脚本有问题,而不是您的客户端脚本。检查语法错误、丢失;或可能丢失的声明。

修复 500 错误 - 常规

此错误只能通过修复 Web 服务器软件来解决。这不是客户端问题。由 Web 服务器站点的操作员来定位和分析应该提供有关错误的更多信息的日志。


尝试在 url 上附加参数。

req.open("GET", "RSSFetchServlet.do?type="+t+"&source="+source,true);
req.send();
于 2013-02-11T03:42:42.970 回答
0

实际问题是只有在使用 POST 时才能使用 request.send 方法发送参数。否则,req 不会将数据封装到 URL 中。

于 2013-02-11T04:20:18.697 回答