会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133532个问题

image.png

一直报404,post和get请求无法返回,

HTML代码

<!DOCTYPE html>
<html lang = "en">
<head>
    <meta charset = "UTF-8">
    <title>08_Ajax的简单封装处理响应.html</title>
</head>
<body>
<h1>08_Ajax的简单封装处理响应.html</h1>
<input type="button" value="测试响应处理" onclick="test1()">
<input type="button" value="测试响应的参数结果处理" onclick="test2()">
<script>
    function ajax(options) {
        var xhr=new XMLHttpRequest()
        var params=''
        // params=options.data
        for(var atr in options.data){
            params=params+atr+'='+options.data[atr]+'&'
        }
        params=params.substr(0,params.length-1)
        //get
        if(options.type==='get'){
            options.url=options.url+'?'+params
        }
        xhr.open(options.type,options.url)
        //post
        if(options.type==='post'){
            xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded')
            xhr.send(params)
        }else{
            xhr.send()
        }

        xhr.onreadystatechange=function () {
            if(xhr.readyState===4 && xhr.status===200){
                if(xhr.getResponseHeader('Content-type').includes('application/json')){
                    options.success(JSON.parse(xhr.responseText))
                }else{
                    options.success(xhr.responseText)
                }
            }else{
                options.error(xhr)
            }
        }
    }

    function test1() {
        ajax({
            type:'get',
            url:'/login',
            data:{'name':'王大禄','pwd':123},
            success:function (resp) {
                console.log(resp)
            },error:function (xhr) {
                console.log(xhr.readyState)
            }
        })
    }
    function test2() {
        ajax({
            type: 'post',
            url: '/state',
            data: {'name': '王大禄', 'pwd': 123},
            success:function (res) {
                console.log(res)
            },error:function () {}
        })
    }
</script>

</body>
</html>


Python代码

# coding=utf-8
from flask import Flask, request, render_template

app = Flask(__name__)


@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':
        return 'get请求成功'
    elif request.method == 'POST':
        return 'post请求成功'


@app.route('/')
def test():
    return render_template('03_Ajax的post的参数传递.html')


@app.route('/state', methods=['GET','POST'])
def state():
    if request.method == 'GET':
        return render_template('04_Ajax的state的使用.html')
    elif request.method == 'POST':
        # return 'post请求成功'
        # return '{"name":"王大禄","age":20}'
        return '{"name":"王大禄","age":20}', 200, [("Content-type", "application/json")]


@app.route('/async')
def asynca():
    return render_template('05_Ajax的异步与同步使用.html')


@app.route('/fz01')
def fz01():
    return render_template('06_Ajax的简单封装.html')


@app.route('/fz02')
def fz02():
    return render_template('07_Ajax的简单封装的传参.html')


@app.route('/fz03')
def fz03():
    return render_template('08_Ajax的简单封装处理响应.html')


@app.route('/fz04')
def fz04():
    return render_template('09_Ajax的简单封装参数默认值.html')


if __name__ == "__main__":
    app.run(debug=True)


Python 全系列/第七阶段:网页编程基础/Ajax 35566楼
Python 全系列/第七阶段:网页编程基础/CSS 样式 35567楼
WEB前端全系列/第四阶段:BootStrap框架模块/BootStrap实战 35568楼
WEB前端全系列/第三阶段:jQuery编程模块/jQuery基础知识(旧) 35569楼

客户端不显示

package com.bjsxt.net;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/** 
 * <p>Title: TcpServerScoket01</p>  
 * <p>Description: 使用TCP Socket实现单向通信(服务器端)</p>  
 * @author xiaoding
 * @date Jul 29, 2020  
 * @version 1.0 
 */
public class TcpServerScoket01 {
    public static void main(String[] args) throws IOException {
        System.out.println("服务器启动");
        //创建服务器对象
        ServerSocket my = new ServerSocket(9999);
        //使用accept方法监听,服务器端口
        Socket p = my.accept();
        //接受客户端发送的数据
        InputStream fis = p.getInputStream();
        //定义一个中转站
        byte[] buf = new byte[1024];
        int len = 0;    //获取读取的次数
        //将读取的数据打印出来
        while((len = fis.read(buf)) != -1) {
            System.out.println(new String(buf,0,len));
        }
//        System.out.println((char)fis.read());
        
        //发送消息
        OutputStream fos = p.getOutputStream();
        //写入数据
        fos.write("收到了".getBytes());
        //关闭IO流
        if (fos != null) {
            fos.close();
        }
        if (fis != null) {
            fis.close();
        }
    }
}

package com.bjsxt.net;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Arrays;

/** 
 * <p>Title: TestTcpSocket01</p>  
 * <p>Description: 使用Tcp Scoket单向通信(客户端)</p>  
 * @author xiaoding
 * @date Jul 29, 2020  
 * @version 1.0 
 */
public class TestTcpSocket01 {
    public static void main(String[] args) throws UnknownHostException, IOException {
        //创建Socket对象
        Socket my = new Socket("127.0.0.1",9999);
        //发送消息
        OutputStream fis = my.getOutputStream();
        fis.write("你好".getBytes());
        
        //接受消息
        InputStream fos = my.getInputStream();
                
        //定义一个中转站
        byte[] buf = new byte[1024];
        int len = 0;    //获取字符
        while((len = fos.read(buf)) != -1) {
            System.out.println(new String(buf,0,len));
        }
        //关闭IO
        if (fos != null) {
            fos.close();
        }
        if (fis != null) {
            fis.close();
        }
        
        if (my != null) {
            my.close();
        }
    }
}


JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 35570楼

老师我跟着视频把代码敲完重启服务器之后就出现以下报错页面,也不自动跳转到浏览器,老师我该怎么解决这个问题

package com.bjsxt.servlet;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * 通过注解方式读取servlet初始化配置信息
 */
@WebServlet(urlPatterns = "initParam.do",initParams = {@WebInitParam(name = "key1",value = "value1"),@WebInitParam(name = "key2",value = "value2")},loadOnStartup = 1)
public class InitParamServlet extends HttpServlet {
    @Override
    public void init() throws ServletException {
        //读取@WebParam注解中的属性
        ServletConfig servletConfig = this.getServletConfig();
        System.out.println(servletConfig.getInitParameter("key1"));
        System.out.println(servletConfig.getInitParameter("key2"));
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletConfig servletConfig = this.getServletConfig();

        PrintWriter out = resp.getWriter();
        /*拼接HTML页面*/
        out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>");
        out.println("<HTML>");
        out.println("<HEAD><TITLE> ITBZ </TITLE></HEAD>");
        out.println("<BODY>");
        out.println("Value1:"+servletConfig.getInitParameter("key1")+"</br></br>");
        out.println("Value2:"+servletConfig.getInitParameter("key2")+"</br></br>");
        out.println("</BODY>");
        out.println("</HTML>");

        out.flush();
        out.close();
    }
}

以下是报错信息:


image.png


image.png


image.png



















JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 35571楼
JAVA 全系列/第八阶段:生产环境部署与协同开发/Git 35573楼
Python 全系列/第七阶段:网页编程基础/JavaScript 35574楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 35576楼
JAVA 全系列/第六阶段:JavaWeb开发/XML技术(旧) 35577楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637