suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Senden Sie eine Post-Anfrage nur mit Optionen an nodejs

Beim Senden einer Post-Anfrage im Hintergrund gibt es nur eine Optionsanforderung, aber keine echte Post-Anfrage. Die Get-Anfrage kann erfolgreich sein. Und wenn Sie Postman nutzen, kann auch die Postanforderung erfolgreich sein. Muss ich etwas konfigurieren? Der Code lautet wie folgt:

Beim Senden einer Postanfrage:


Get-Anfrage senden:

Im Postbotenumfeld kann die Post erfolgreich sein.

Der NodeJS-Code lautet wie folgt:

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');

Die Rezeption verwendet Angulars $http.
Was ich fragen möchte, ist, warum es beim Posten nur diese domänenübergreifenden Optionen gibt

習慣沉默習慣沉默2741 Tage vor1031

Antworte allen(2)Ich werde antworten

  • 巴扎黑

    巴扎黑2017-07-03 11:44:02

    • 首先搞清楚为啥会发一个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请求!!!

    • 我自己有一个疑问,我看你后端的代码是没有处理options的请求的,但是你前端的状态显示这个请求是成功的!!!想知道这个是怎么弄的?

    希望能帮到你

    Antwort
    0
  • ringa_lee

    ringa_lee2017-07-03 11:44:02

    https://github.com/wxungang/n...

    完整代码

    Antwort
    0
  • StornierenAntwort