【发布时间】:2012-07-22 19:23:52
【问题描述】:
我正在尝试通过 ajax 发布表单。它给了我“405 Method Not Allowed”错误。如果我将 url 放在 html 表单的操作部分并在单击按钮时手动提交(因此它不是 csrf 问题..rite?),则相同的 html 文件可以工作。
可能是什么问题?
【问题讨论】:
-
你能把代码贴出来吗?
-
您的网站将向您的表单添加一个 CSRF 隐藏字段,以便它们通过 CSRF 验证。做Ajax请求的时候,没有这些隐藏字段,所以失败。我只是寻找隐藏字段并获取它的值并将其添加到值列表中以作为帖子发送。
-
@Engineer — 同源策略不会导致 405 错误。
-
@Gavin — 除非设置为这样做,否则不会。无论如何,CSRF 应该抛出 403 而不是 405。
-
这取决于底层站点的实现。如果它设置为抛出 405,它会。您的后端代码是 PHP 吗?您是否使用第三方框架,例如 CodeIgniter 或 DJango?