在laravel中返回时重定向到外部URL

时间:2015-02-21 06:09:21

标签: php laravel laravel-4 sms-gateway

我正在尝试使用SMS INDIA HUB API向用户发送一次性密码。 为此,我需要重定向到URL格式:

http://cloud.smsindiahub.in/vendorsms/pushsms.aspx?user=abc&password=xyz&msisdn=919898xxxxxx&sid=SenderId&msg=test%20message&fl=0&gwid=2

如果我们加载此网址,则会返回一些消息。我需要收到这条消息。

我试过这个

$url = "http://cloud.smsindiahub.in/vendorsms/pushsms.aspx?user=wwww&password=eee&msisdn=9197xxxxx&sid=yyyyy&msg=rrrrr&fl=0&gwid=2";

return Redirect::intended($url);

但它没有指向那个链接。它尝试在localhost中加载该URL。

或者有没有使用SMS INDIA HUB发送短信的插件?

任何人都可以帮忙吗?

8 个答案:

答案 0 :(得分:35)

您应该可以像这样重定向到网址

return Redirect::to($url);

You can read about Redirects in the Laravel docs here.

答案 1 :(得分:15)

$url

中定义要重定向的网址

然后使用

return Redirect::away($url);

如果您想在视图中重定向,请使用

return Redirect::to($url);

详细了解Redirect here

更新1:

这是一个简单的例子

return Redirect::to('http://www.google.com');

更新2:

由于提问者想要在同一页面中返回

$triggersms = file_get_contents('http://www.cloud.smsindiahub.in/vendorsms/pushsms.aspx?user=efg&password=abcd&msisdn=9197xxx2&sid=MYID&msg=Hello');
return $triggersms;

答案 2 :(得分:5)

对于Laravel 5.x,我们可以只用

重定向
return redirect()->to($url);

答案 3 :(得分:3)

您可以使用Redirect::away($url)

答案 4 :(得分:1)

另外,添加课程

      use Illuminate\Http\RedirectResponse;

之后,就像这样:

 public function show($id){

    $link = Link::findOrFail($id);  // get data from db table Links

    return new RedirectResponse($link->url);  // and this my external link, 
 }

或 -

 return  new RedirectResponse("http://www.google.com?andParams=yourParams"); 

对于外部链接,必须使用带有' http'的完整网址字符串。在开始。

答案 5 :(得分:0)

如果您使用的是InertiaJS,则away()方法将无法像惯性JS github上那样工作,他们正在讨论在惯性JS上创建“ 外部重定向”的最佳方法。 ,目前的解决方案是返回一个具有X-Inertia-Location标头的 409 状态,通知网址,如下所示:

return response('', 409)
            ->header('X-Inertia-Location', $paymentLink);

paymentLink是您要将用户发送到的链接。

来源:https://github.com/inertiajs/inertia-laravel/issues/57#issuecomment-570581851

答案 6 :(得分:0)

return Redirect::away($url);应该可以重定向

此外,return Redirect::to($url);可以在视图内重定向。

答案 7 :(得分:0)

对于 Laravel 8,你也可以使用

Route::redirect('/here', '/there');
//or
Route::permanentRedirect('/here', '/there');

这也适用于外部 URL

见:https://austencam.com/posts/setting-up-an-m1-mac-for-laravel-development-with-homebrew-php-mysql-valet-and-redis