我正在处理这里的React.js教程:http://facebook.github.io/react/docs/tutorial.html
使用AJAX和post方法向页面添加注释时,我得到501 (Unsupported method ('POST'))
。
我知道你不能在本地发送JSON post命令(类似于这个问题:angularjs $http.post results in 501 Unsupported method ('POST'))而我正在使用python -m SimpleHTTPServer
。
如何为JSON文件设置Web服务端点?
答案 0 :(得分:2)
如果你看一下github上的reactjs/react-tutorial,那就是使用node.js的示例服务器:
git clone git@github.com:reactjs/react-tutorial.git && cd react-tutorial
npm install
node server.js
这是server.js文件。
var fs = require('fs');
var path = require('path');
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var comments = JSON.parse(fs.readFileSync('_comments.json'));
app.use('/', express.static(path.join(__dirname, 'public')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.get('/comments.json', function(req, res) {
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(comments));
});
app.post('/comments.json', function(req, res) {
comments.push(req.body);
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(comments));
});
app.listen(3000);
console.log('Server started: http://localhost:3000/');
/**
* This file provided by Facebook is for non-commercial testing and evaluation purposes only.
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/