【发布时间】:2015-10-31 08:54:32
【问题描述】:
当我点击帖子链接时,我想通过 AJAX 加载我的帖子,如何通过 AJAX 发送我的帖子 ID?
我的 Blade 文件中有一个链接:
{{ link_to_route($post->type, $post->comments->count() . ' ' . t('comments'), array('id' => $post->id, 'slug' => $post->slug), array('class' => 'link--to--post')) }}
我有以下路线定义:
Route::get('news/{id}-{slug?}', ['as' => 'news', 'uses' => 'NewsController@show']);
和控制器动作:
public function show($id, $slug = null)
{
$post = $this->news->getById($id, 'news');
if ($slug != $post->slug){
return Redirect::route('news', ['id' => $post->id, 'slug' => $post->slug]);
}
Event::fire('posts.views', $post);
return View::make('post/post', compact('post'));
}
然后我正在尝试这个:
var postTitle = $(".link--to--post");
postTitle.click(function () {
$.ajax({
url: '/news/{id}-{slug}',
type: 'GET',
data: $(this),
success: function (data) {
console.log(data)
}
});
return false;
});
但这对我不起作用,我做错了什么?
【问题讨论】:
-
您的 .ajax 调用中有
$(this)-- 在此上下文中this指向什么对象?如果data被设置为一个对象,对象的属性会被转换成类似?id=4&slug=foo这样的查询字符串,这里可能不是你想要的。
标签: php jquery ajax laravel laravel-routing