刷新时获取json数据

我有一个博客应用程序,每个post都有自己独特的永久链接,例如/post/Dh3hdjs*其中Dh3hdjs*是唯一的永久链接。我的问题是当成功创build后,它将redirect到特定的链接,如/post/Dh3hdjs* ,但是在我刷新页面后,它变成了一个json文件。 这是我迄今为止

的NodeJS(express.js)

 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 }); } 

Angularjs

 function PostCtrl($scope, $http, $location, $routeParams) { $http.get('/post/' + $routeParams.permalink). success(function(data) { $scope.data =data; }).error(function(err) { alert("something wrong") }); } 

HTML

 <div class='pure-u-1'> <h1>{{data.title}}</h1> <h2>{{data.preview}}</h2> {{data.content}} </div> 

工作正常,直到我新鲜的页面,它会变成json文件

一个简单的解决scheme可以是将服务器APIpath从'/ post /:permalink'更改为'/ api / post /:permalink',这将停止发送JSON文档并让AngularJS控制页面刷新。

还有另一种技术来识别ajax请求:

 var is_ajax_request = req.xhr; 

识别ajax请求的关键是,可以使用相同的url来运行页面和api。