【问题标题】:404 when called with AJAX. But not 404 when accessed using browser使用 AJAX 调用时出现 404。但使用浏览器访问时不是 404
【发布时间】:2016-12-22 03:01:33
【问题描述】:

对 url 的 ajax 调用不断收到 404 Not found。但是使用浏览器访问时,该网址有效。

截图:

http://i.imgur.com/8l4M1fp.png

http://i.imgur.com/yTbEc2O.png

ajax 是由同一个域制作的,所以它不是跨域问题。

有谁知道是什么原因造成的?感谢您的帮助!

*这个系统是用codeigniter构建的

【问题讨论】:

  • 只有向我们展示 ajax 代码才有意义。您是否启用了 CodeIgniter 的 CSRF 保护?如果是这样,那么您必须将 CSRF 令牌的值作为 ajax 数据的一部分传递。

标签: php jquery ajax codeigniter


【解决方案1】:

试试 jQuery.get('//54.169.51.129/checkout/checkshipping')

我认为如果您在 codeigniter 配置中启用 url 查询参数,那么这可能会有所帮助,具体取决于您的服务器设置

【讨论】:

  • 感谢您的帮助。我使用确切的命令在我这边进行了尝试。对我来说仍然是 404。 screenshot。我尝试使用另一个互联网网络,它仍然是 404。这太奇怪了。你有什么想法吗?
  • 似乎存在一些应用程序逻辑问题。我没有登录,我的卡里什么也没有,所以这可能与那个状态有关。您可能会听到很多,但测试和开发团队,甚至调试器在这一点上会更有帮助,因为我们都在一个没有 SO 实现细节的黑盒中。顺便说一句圣诞快乐
  • 我还没有解决这个问题。谢谢,迟来的圣诞快乐!
  • 一次处理一件事。因此,如果未通过空篮子进行身份验证,会发生什么?那么如果用空篮子认证呢?然后是一个项目,然后是篮子里的两个单独的项目并经过身份验证(似乎需要登录才能添加);然后一个项目的多个数量 & authed;然后是多个 qty + 单个产品,其中包含 2 个项目和已验证等。这很慢,但它可能会有所帮助。您没有单元测试、功能测试或端到端测试吗?
【解决方案2】:

实现的服务会保持状态,因此当您以不同的方式(调用顺序)调用它们时,您应该期望可能出现不同的行为。以相同的顺序调用它们,你会很甜蜜。

附带说明:此 (REST) URI 无论如何都不应返回 404,因为您不引用特定实体。

【讨论】:

  • 嗨。谢谢你的回复。但我得到一个404? this (REST) URI should never return a 404 anyway as you do not refer to a particular entity. 是什么意思?
  • A 404 表示“未找到”,它与缺少实体有关。 URI“checkout/checkshipping”不引用任何实体,因此不应该有 404。REST 是一个指南,其中包括如何格式化 URI。在您的情况下,像 GET .../shoppingTransactions/444 这样的 URI 更有意义,它会返回一个购物交易,该交易的状态标志类似于 ShippingCheckStatus 左右。如果购物交易 444 不存在,则返回 404;否则,你会得到 200 的回报。
猜你喜欢
  • 1970-01-01
  • 2019-03-14
  • 2018-04-24
  • 1970-01-01
  • 2020-10-05
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
相关资源
最近更新 更多