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

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

向nodejs發送post請求,只有options

向nodejs發送post請求,只有options

慕桂英546537 2018-11-13 14:23:09
向后臺發送post請求時,只有一個options的請求,而沒有真的post請求,get請求可以成功。而如果用postman,post請求也可以請求成功。需要配置什么嗎。代碼如下:發送post請求時:發送get請求:而在postman的環境下,post可以成功。nodejs代碼如下:var app = require('express')();var User = require("./users.js");app.post('/users/login',function (req,res) {    res.setHeader('Access-Control-Allow-Origin', '*');    res.send("foo");    console.log(res)})app.get('/users/login',function (req,res) {    res.setHeader('Access-Control-Allow-Origin', '*');    res.send("bar");})app.listen('1090','127.0.0.1');前臺用的是angular的$http。想問的是,為什么post的時候,只有這個跨域的options啊
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

  • 首先搞清楚為啥會發一個options的請求(如果你已經知道了就忽略好了),以下是發送(Preflight request)的先決條件。

  1. 請求以 GET, HEAD 或者 POST 以外的方法發起請求。或者,使用 POST,但請求數據為 application/x-www-form-urlencoded, multipart/form-data 或者 text/plain 以外的數據類型。比如說,用 POST 發送數據類型為 application/xml 或者 text/xml 的 XML 數據的請求。

  2. 使用自定義請求頭(比如添加諸如 X-PINGOTHER)

  • 由于GET請求沒有預請求,直接發送所以沒問題。你在后端需要處理的options的請求,并且帶上CORS需要的那些頭,例如Access-Control-Allow-Origin等,這樣options的預請求成功之后,才會接著發送真正的post請求!?。?/p>

  • 我自己有一個疑問,我看你后端的代碼是沒有處理options的請求的,但是你前端的狀態顯示這個請求是成功的?。?!想知道這個是怎么弄的?

希望能幫到你


查看完整回答
反對 回復 2018-12-29
  • 1 回答
  • 0 關注
  • 1724 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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