新手问题 为什么一个页面保存到本地后就不能提交表单了?

assyer · 2013年04月16日 · 最后由 zlx_star 回复于 2013年04月18日 · 4367 次阅读

问题描述

现在用 rails 写了一个博客网站,然后我 new 一篇博客的页面,并将这个页面保存到本地,然后在浏览器中打开这个本地的 html 文件,写一篇文章,点击提交,没反应??

想明白

  • 为什么在线的网页可以提交表单,但是离线的表单不能提交?
  • 我可以怎么修改这个本地的 html 来实现从本地提交一个表单呢?

PS

本人菜鸟一个,这样的问题会不会很弱智?

域名不一样了吧... 把表单提交路径改成绝对路径试试看。

(我只是乱猜一下)

action 写的是相对路径

1 如果是 ajax 提交则不允许跨域 (请求没有发出去)。 2 不能带上 cookie,可能服务器要验证 csrf 参数;又或者验证 referer。不符合的请求直接被服务器或前端代理丢掉。打开浏览器开发者工具看看。

#1 楼 @blacktulip 保存到本地以后 actioin 自动就变成了绝对路径

csrf-token 不一样了吧

#5 楼 @miclle 但是奇怪的事情是有些项目保存到本地后依然可以 submit,有些不知所措了。。。其实我主要是想知道怎么才能用 http 协议在安卓手机上面发送给 rails 一个 POST 请求,提交数据,我想自己做一个开源项目,功能上类似于 parse.com 提供的服务,提供一个 sdk 和一个 gem

#6 楼 @assyer 那是因为那些项目不够安全,Rails 是有自带放跨站攻击的验证 CSRF

#7 楼 @huacnlee 为什么百度好像么有 csrf?我把百度首页保存到本地依然可以搜索

#8 楼 @assyer 百度和 Google 的搜索表单是 GET 请求,而且是必须这么实现。再者这个搜索不存在 CSRF 安全的要求

#9 楼 @huacnlee 唉妈,糊涂了。 想知道一般自己写 API 要怎么弄? 嗯,找到 Rails::API 这个项目了~

你可以使用 firebug 或者 chrome 的 develop tool 看看请求有没有发出去,然后决定如何解决

需要 登录 后方可回复, 如果你还没有账号请 注册新账号