2016-07-30 32 views
0

Ich versuche HTTP GET Anfrage mit email in params in folgendem Code an:

$http.get('api/me', { 
    params: { 
     email: email 
    } 
}); 

aber an Back-End-I leer params heißt request.params empfange ist leer. Ich versuchte, das andere Format von HTTP Anfrage heißt

$http({ 
    url: 'api/me', 
    method: "GET", 
    params: {email: email} 
}); 

aber Ergebnis ist das gleiche heißt leer params am Backend.

My Back-End-Code:

User.findOne({ email: request.params.email }, function(error, user) { 
    if (error) { 
     throw error; 
    } else if (!user) { 
     response.json({ 
      message: "User doesn't exist.", 
      status: 0 
     }); 
    } else { 
     response.json({ 
      message: "Successfully logged in.", 
      status: 1, 
      data: user 
     }); 
    } 
}); 
+0

zunächst einmal prüfen, ob der E-Mail-Variable einen Wert zugewiesen hat. Backend sollten Sie einen "email" -Parameter mit einem Wert nicht "request.params" erwarten, wie Sie in Ihrer Frage angeben. Können Sie Ihren Backend-Code anzeigen? – cnorthfield

+0

@papakia Ja. Du hast recht. Ich habe das Format missverstanden. Gibt es eine Möglichkeit, die E-Mail in einem Format zu bekommen, das es mir erlaubt, es als 'request.params' oder' request.headers' oder 'request.body' zu holen (obwohl ich' request.body' da nicht will ist eine "GET" Anfrage). Ich habe auch die Frage bearbeitet und meinen Backend-Code hinzugefügt. – Rusty

+0

Verwenden Sie Express? Wenn ja, dann sehen Sie die Antwort hier gepostet: http://stackoverflow.com/a/9243020/3453034 – cnorthfield

Antwort

0

Sie sollten nicht die params verwenden, um Daten zu senden. Verwenden Sie stattdessen Daten selbst

$http({ 
    url: 'api/me', 
    method: "GET", 
    data: {email: email} 
}); 

und dann im Backend:

User.findOne({ email: request.email }, function(error, user) ...