2016-08-05 23 views
0

Ich poste einige Informationen zu einem externen Dienst, auf dem sie die Postparams verarbeitet und sollte ihre eigene Seite mit den Parametern, die ich gesendet habe, zeigen.Wie umleiten auf externe Service-Seite bei Post-Anfrage?

d. H. Es sollte auf ihre Anfrage auf meiner Seite umgeleitet werden.

Hier ist, was ich tue: Ich verwende HTTParty, um die Daten an ihre URL zu posten und die Antwort im Antwortobjekt zu speichern und render: html zum Rendern zu verwenden.

Ich bekomme einen HTML-Antwort Antwortobjekt.

hier ist der Code:

 example_url = 'https://www.example.com/service.aspx' 
    post_params = build_params # builds params for post request 
    response = HTTParty.post(cams_url_two, 
       body: URI.encode_www_form(post_params), 
       headers: { 'Content-Type' => 'application/x-www-form-urlencoded' }, 
       verify: false) 
    @result[:url] = response.body 

Und Controller Ich verwende

jedoch

render html: result[:url].html_safe 
machen, was hier geschieht, ist die Antwort zurückgibt html, die auf meine eigene Anwendung also localhost gerendert wird, Es versucht auch, seine Assets in meiner App zu suchen.

Was hier erwartet wird, ist nach dem Schlagen einer Post-Anfrage, sollte es auf ihre Website umleiten.

Irgendwelche Ratschläge oder Hilfe, wie erreiche ich das?

Vielen Dank!

+0

Versuchen Sie, die Seite auf Antwort "URL" umleiten? – hgsongra

+0

@hgsongra ja, das ist, was ich tun möchte. Aber anstatt eine Antwort-URL zu erhalten, erhalte ich eine vollständige Antwortseite in meinem Antwortobjekt. – VoidZero

+0

Ersetzen Sie Ihre letzte Zeile in oben genannten Code-Block mit diesem Code 'redirect_to response.body' Ich gehe davon aus, dass Ihre' response.body' Rückgabe 'url' – hgsongra

Antwort

0

Ich glaube, Sie

redirect_to @result[:url].html_safe 

möchten Wenn Sie der Benutzer umgeleitet werden möchten, dann redirect_to verwenden. Wenn Sie eine Seite rendern möchten, verwenden Sie render html:...

+0

leider, das ist nicht das, was ich hier will, ist auf eine Post-Anfrage, die ich sollte direkt auf die Antwort-Seite des externen Dienstes weitergeleitet werden. Ich habe versucht, Redirect vor, aber kein Glück damit. – VoidZero