cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - ApringMVC menerima permintaan pos sudut, parameternya adalah batal atau terus 400, sila selesaikan?

Saya telah dibunuh oleh perkara ini dalam dua hari lalu Perkara yang paling dibenci ialah beberapa projek baik dan beberapa projek menyusahkan, tetapi saya tidak tahu mengapa. Baru belajar seminggu. Itu sahaja. Terdapat dua kaedah di bawah yang pertama menerima json, jadi tidak mengapa. Yang terakhir menerima teks dan kemudian terus 400. Jika ia ditukar kepada @requestBody, ia akan menjadi batal.
/**
     * 验证注册名
     **/

    @ResponseBody
    @RequestMapping(value = "validateName", method = RequestMethod.POST)
    public String userNameValidate(@RequestParam("name") String name) {

        if (userServive.checkRegisterName(name)) {
            return "1";
        } else {
            return "0";
        }
    }

    /**
     * 保存注册信息
     **/
    @ResponseBody
    @RequestMapping(value = "/saveNewUser", method = RequestMethod.POST, consumes = "application/x-www-form-urlencoded")
    public String saveRegisterInfo(@RequestParam("user") User user) {

        System.out.println(user);

        //        User u = userServive.saveRegisterUser(user);
        if (user != null) {
            return "1";

        } else {

            return "0";
        }
    }
Kemudian, lihat perbezaan antara pengepala permintaan dan pengepala respons kedua-duanya: Kaedah sebelumnya: Jenis Kandungan semuanya sepadan antara satu sama lain, tidak mengapa.

Response Headers
view source
Content-Length:1
Content-Type:application/json;charset=UTF-8
Date:Mon, 25 Apr 2016 13:51:18 GMT
Proxy-Connection:keep-alive
Server:Apache-Coyote/1.1


Request Headers
view source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, lzma
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Content-Length:11
Content-Type:application/x-www-form-urlencoded
Tetapi yang terakhir tidak sepadan: ada masalah.

Response Headers
view source
Connection:close
Content-Language:en
Content-Length:1105

Content-Type:text/html;charset=utf-8

Date:Mon, 25 Apr 2016 14:10:17 GMT
Proxy-Connection:keep-alive
Server:Apache-Coyote/1.1


Request Headers
view source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, lzma
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Content-Length:50

Content-Type:application/x-www-form-urlencoded
Jadi, kaedah kedua saya di atas ialah menambah pengguna atau pengeluaran, malah pengepala telah dicuba, tetapi masih tidak boleh diubah: Content-Type:text/html;charset=utf-8 Masih salah, salah, salah, salah, salah. Saya menambah tiga beg Jackson Apa yang sedang berlaku? ? Perkara yang paling membenci ialah beberapa hari yang lalu, kaedah yang sama berfungsi dengan baik, tetapi ia tidak berkesan apabila saya menukar jaket. Hei
我想大声告诉你我想大声告诉你2849 hari yang lalu604

membalas semua(1)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-05-15 17:03:12

    Permintaan siaran sudut tidak akan mensirikan data, anda perlu mengubah suai $httpProvider

    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
    $httpProvider.defaults.transformRequest = function(obj){
        var str = [];
        for(var p in obj) {
            str.push(encodeURIComponent(p) + '=' + encodeURIComponent(obj[p]));
        }
        return str.join("&");
    };
    $httpProvider.defaults.headers.post = {
        'Content-Type': 'application/x-www-form-urlencoded'
    };

    balas
    0
  • Batalbalas