亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

REST 服務通過curl 工作,而不是通過應用程序工作

REST 服務通過curl 工作,而不是通過應用程序工作

翻過高山走不出你 2023-10-14 16:44:21
我有一個使用 Spring 構建的小型 Web 應用程序,并且可以從curl 和 postman 訪問 REST 服務。如果我嘗試使用 Web 應用程序上托管的 JavaScript 訪問它們,則會收到 405 錯誤。什么可能導致這種情況?我意識到代碼中存在不安全性,這只是一個倉促的課程項目,所以它們并不重要。如果我復制 JavaScript 代碼并在瀏覽器的控制臺中運行它,它就會起作用。用戶等級import org.springframework.data.annotation.Id;public class User {    @Id    public String id;    private String username;    private String firstName;    private String lastName;    private String password;    private int zipCode;    private int jacketThreshold;    private int coatThreshold;    public User() {}    public User(String username)    {        this.username = username;    }    public User(String firstName, String lastName, String password) {        this.firstName = firstName;        this.lastName = lastName;        this.password = password;    }    public User(String username, String password, int zipCode) {        this.username = username;        this.password = password;        this.zipCode = zipCode;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getFirstName() {        return firstName;    }    public void setFirstName(String firstName) {        this.firstName = firstName;    }    public String getLastName() {        return lastName;    }    public void setLastName(String lastName) {        this.lastName = lastName;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public int getZipCode() {        return zipCode;    }    public void setZipCode(int zipCode) {        this.zipCode = zipCode;    }    public int getJacketThreshold() {        return jacketThreshold;    }    public void setJacketThreshold(int jacketThreshold) {        this.jacketThreshold = jacketThreshold;    }
查看完整描述

3 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

檢查您是否返回 @ResponseBody 或 @ResponseStatus


要解決此問題,只需添加 @ResponseBody


    @RequestMapping(value="/user", method = RequestMethod.POST)

public @ResponseBody String updateUser(@RequestBody User user){

    return userService.updateUser(user).getId();

}

或您的方法的@ResponseStatus。


    @RequestMapping(value="/user", method = RequestMethod.POST)

@ResponseStatus(value=HttpStatus.OK)

public String updateUser(@RequestBody User user){

    return userService.updateUser(user).getId();

}



查看完整回答
反對 回復 2023-10-14
?
森林海

TA貢獻2011條經驗 獲得超2個贊

跨源必須包含您的 js 托管服務器地址,例如 Ex - @CrossOrigin(origins="http://localhost:3000) 并將其添加在 @RestController 之后



查看完整回答
反對 回復 2023-10-14
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

檢查你的js代碼。如果你看一下你的控制器,它被聲明為@PostMapping。確保您的 js 代碼調用相同的 POST 方法。



查看完整回答
反對 回復 2023-10-14
  • 3 回答
  • 0 關注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號