jquery ajax返回Internal server error 500错误怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery ajax返回Internal server error 500错误怎么解决相关的知识,希望对你有一定的参考价值。

服务器错误,检查你的后台代码。

    是服务器有问题,你可以再仔细检查下你请求的地址是否有误,在确认地址没有错误的时候,你能操作后台文件的话可以在请求的后台文件中打印你是否请求到该文件,也就是在那个文件的头部直接输出个值后在断掉看看是否能通,然后在进一步调试。

    服务器,也称伺服器。指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。服务器的构成与一般的PC比较相似,但是服务器在稳定性、安全性、性能等方面都要求更高,因为CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。

    它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。服务器的构成与微机基本相似,有处理器、硬盘、内存、系统总线等,它们是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。

参考技术A 500是服务器程序错误,你看一下取得的数据是什么。因为服务器程序错误的原因可能很多啊,所以没有一个统一的处理方法。你应该先取一下数据,比如你从一个api取数据,你先看一下是否能打开这个api的接口,如果直接就打不开,肯定取不到数据500错误了。先确保服务器端没有出错,然后再用ajax取数据。本回答被提问者采纳 参考技术B 500是服务器有问题,你可以再仔细检查下你请求的地址是否有误,在确认地址没有错误的时候,你能操作后台文件的话可以在请求的后台文件中打印你是否请求到该文件,也就是在那个文件的头部直接输出个值后在断掉看看是否能通,然后在进一步调试。 参考技术C 服务器错误,检查你的后台代码 参考技术D 这个不是 JS的问题了,你看看服务器那边的问题吧

使用jQuery发送ajax

首先我们来看一波js的原声ajax。

我们先准备好servlet,之后不会改动,所以先看一波。

package cn.curry.servlet;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by zl on 2017/3/18.
 */
public class RegisterServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name=request.getParameter("name");
        if("admin".equals(name)){
            //打回浏览器  “已经注册”
            response.getWriter().write("Your Account Is Already Registered");
        }
        else{
            //可以注册
            response.getWriter().write("You Can Register This Account");
        }

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}
很简单的servlet页面,然后我们看前台jsp展示页面,我写的是发送post,请求。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注册</title>
<script type="text/javascript">
function checkUser(){
var value=document.getElementById("username").value;
            var url="RegisterServlet";
            var xhr;
            if(window.XMLHttpRequest){
                //非IE浏览器 Chrome 等
                xhr=new XMLHttpRequest();
            }else{
                //IE
                xhr=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhr.open(‘post‘,url,true);
            xhr.onreadystatechange=function(){
                if(xhr.readyState==4&&xhr.status==200){
                    var content=xhr.responseText;
                    document.getElementById("msg").innerText=content;
                }
            }
            xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
            xhr.send("name="+value);
        }
    </script>
</head>
<body>
    <input id="username" name="username" onblur="checkUser()"/><span id="msg"></span><br/>
    <input name="userpwd"/>
</body>
</html>
简单改一下就可以实现发送get请求。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册</title>
    <script type="text/javascript">
        function checkUser(){
            var value=document.getElementById("username").value;
            var url="RegisterServlet?name="+value;
            var xhr;
            if(window.XMLHttpRequest){
                //非IE浏览器 Chrome 等
                xhr=new XMLHttpRequest();
            }else{
                //IE
                xhr=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhr.open(‘get‘,url,true);
            xhr.onreadystatechange=function(){
                if(xhr.readyState==4&&xhr.status==200){
                    var content=xhr.responseText;
                    document.getElementById("msg").innerText=content;
                }
            }
          
            xhr.send(null);
        }
    </script>
</head>
<body>
    <input id="username" name="username" onblur="checkUser()"/><span id="msg"></span><br/>
    <input name="userpwd"/>
</body>
</html>
接下来看jQuery的,简单了很多。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册</title>
    <script type="text/javascript" src="jq/jQuery1.11.1.js"></script>
    <script type="text/javascript">
        function checkUser() {
            var value=document.getElementById("username").value;
            $.ajax({
                url : "RegisterServlet",
                type : "GET",
                data : "name="+value,
                dataType : "text",
                success : function(result){
                    document.getElementById("msg").innerText=result;
                },
                error:function () {
                    document.getElementById("msg").innerText=result;
                }
            });
        }
    </script>
</head>
<body>
    <input id="username" name="username" onblur="checkUser()"/><span id="msg"></span><br/>
    <input name="userpwd"/>
</body>
</html>

发送post请求直接把get改为post就可以了。这里就不做概述了。

当然除了$.ajax jQuery还提供了$.get(),$.post(),$(select).load等方法。以上方法用法和$.ajax()语法并没有不同,是对$.ajax()的封装,但是$.ajax()更灵活,通常使用$.ajax()可以完成我们的开发。所以你懂得。

 











以上是关于jquery ajax返回Internal server error 500错误怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

使用jQuery发送ajax

jQuery标准的AJAX模板

2014年辛星jquery解读第三节 Ajax

使用 AJAX 编写内部链接

ajax中push,在jQuery serialize()或serializeArray()中添加/ push()值到Ajax POST

在Phonegap项目中结合Ajax、Jquery、mysql、php不起作用