我有一个博客应用,每个帖子都有自己独特的固定链接,例如/post/Dh3hdjs*
其中Dh3hdjs*
是唯一的固定链接。我的问题是,当帖子成功创建后,它会重定向到特定的链接像/post/Dh3hdjs*
,但刷新页面后,它变成了一个json文件。这就是我到目前为止所拥有的
app.get('/post/:permalink', contentHandler.displayPostByPermalink);
displayPostByPermalink
this.displayPostByPermalink = function(req, res, next) {
"use strict";
var permalink = req.params.permalink;
posts.getPostByPermalink(permalink, function(err, post) { //get post data
//by using permalink
"use strict";
if (err) return next(err);
res.send(200,post) //if success send the data to angularjs controller
});
}
getPostByPermalink
this.getPostByPermalink = function(permalink, callback) {
"use strict";
posts.findOne({'permalink': permalink}, function(err, post) {
"use strict";
if (err) return callback(err, null);
callback(err, post); // if found any return post data
});
}
function PostCtrl($scope, $http, $location, $routeParams) {
$http.get('/post/' + $routeParams.permalink).
success(function(data) {
$scope.data =data;
}).error(function(err) {
alert("something wrong")
});
}
<div class='pure-u-1'>
<h1>{{data.title}}</h1>
<h2>{{data.preview}}</h2>
{{data.content}}
</div>
工作正常,直到我新鲜页面,它将变成json文件
答案 0 :(得分:1)
一个简单的解决方案可以是将服务器api路径从'/ post /:permalink'更改为'/ api / post /:permalink'这将停止发送JSON文档并让AngularJS控制页面refreshals。
还有另一种识别ajax请求的技术:
var is_ajax_request = req.xhr;
识别ajax请求的关键是,相同的url可用于运行page和api。