JavaScript XMLHttpRequest无法将参数传输到服务器
我检查了服务器端,直接使用浏览器GET或jquery.ajax GET调用,它可以返回正确的页面。也就是说,服务器端没有问题 但是,当我尝试使用以下代码进行ajax调用时,我总是会遇到500个内部服务器错误。奇怪的是,我检查了控制台日志,似乎参数没有成功传输到服务器。访问服务器时的“type”和“source”参数均为null 相关代码如下所示。newXMLHttpRequest()只是一个为不同浏览器返回正确对象的方法,该方法已被验证为正确 有人知道哪里出了问题吗JavaScript XMLHttpRequest无法将参数传输到服务器,javascript,ajax,xmlhttprequest,Javascript,Ajax,Xmlhttprequest,我检查了服务器端,直接使用浏览器GET或jquery.ajax GET调用,它可以返回正确的页面。也就是说,服务器端没有问题 但是,当我尝试使用以下代码进行ajax调用时,我总是会遇到500个内部服务器错误。奇怪的是,我检查了控制台日志,似乎参数没有成功传输到服务器。访问服务器时的“type”和“source”参数均为null 相关代码如下所示。newXMLHttpRequest()只是一个为不同浏览器返回正确对象的方法,该方法已被验证为正确 有人知道哪里出了问题吗 function updat
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);
}
意味着服务器端脚本有问题,而不是客户端脚本。检查语法错误,缺少代码>并且可能缺少声明
修复500个错误-常规
此错误只能通过修复Web服务器软件来解决。这不是客户端问题。由Web服务器站点的操作员查找和分析日志,日志应提供有关错误的进一步信息
尝试将参数附加到url上
req.open("GET", "RSSFetchServlet.do?type="+t+"&source="+source,true);
req.send();
实际问题是,只有在使用POST时,才能使用request.send方法发送参数。否则,req不会将数据封装到URL中。否,因为我无法将“type”和“source”参数传输到服务器,所以得到500。服务器没有任何问题,但是ajax调用没有正确地传输这两个参数…@YitongZhou尝试在url中添加参数,而不是在上。send()
我也尝试了,但不起作用。。。还是500。我开始怀疑url编码问题或任何其他奇怪的事情…我甚至将代码粘贴到console.log并运行,仍然是500,这意味着它不是html视图页面中的错误,唯一可能的位置是这些js代码。你在Fiddler中看到了什么?@SLaks仅使用Chrome控制台,那么Fiddler可以做得更好吗?你是想提出一个GET
还是POST
请求?你是否检查了t
并且source
有值?(在你的Submit()
)中@NewDeveloper我检查了它们,它们确实有值。