我需要将URL传递给控制器,如下所示:
((JTextComponent)combobox.getEditor().getEditorComponent()).hasFocus()
但是当我传递一个网址时:
Route::get('vote/scraper?s={url}', 'VoteController@getUrlData');
Laravel认为URL中的其他斜杠是不同的视图并抛出NotFoundHttpException。
我该怎么做?
答案 0 :(得分:1)
从路线中删除查询:
Route::get('vote/scraper', 'VoteController@getUrlData');
尝试从输入:: get()获取网址,如
$url = Input::get('url');
PS:查询中的编码URL是一种很好的推荐做法。
答案 1 :(得分:1)
这有效!
Route::get('add/{encoded_url}', function($encoded_url)
{
return 'The URL is: '.rawurldecode($encoded_url);
})->where('encoded_url', '.*');
答案 2 :(得分:1)
转换代码mysite.com/vote/scraper?s=http://www.example.com/fastrack-wayfarer-sunglasses/p/itmdx7z4hgjgp5st
应为mysite.com/vote/scraper?s=http%3A%2F%2Fwww.example.com%2Ffastrack-wayfarer-sunglasses%2Fp%2Fitmdx7z4hgjgp5st
您可以在php中使用urlencode
或在javascript(http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp)中使用encodeURIComponent
获取已编码的网址
然后,您的路线应为Route::get('vote/scraper', 'VoteController@getUrlData');
最后,在getUrlData
中使用$url = \Input::get('s');
或者在Laravel 5.1中
public function getUrlData(Request $request)
{
$url = $request->input('s');
}
答案 3 :(得分:0)
您需要使用urlencode()
对您的网址进行编码。