【问题标题】:jQuery ajax returning 404 error when passing URL as post data将 URL 作为发布数据传递时,jQuery ajax 返回 404 错误
【发布时间】:2013-11-04 20:04:30
【问题描述】:

我在使用 $.ajax 时遇到 404 错误,并将其缩小到问题是我与数据一起传递的值之一。

我正在尝试将 url 作为文本传递以保存到我的数据库中。

$.ajax({
    type: 'POST',
    url: 'ajax.php',
    data: {'edit-username': username, 'website-value': websiteValue}
}).done(function(){
    //custom code here
});

如果我将 websiteValue 设置为等于 http://google.com,那么我在 chromes 网络选项卡上收到 404 错误。 (对于我自己的域以外的任何东西都是如此。)

如果我将它设置为 //google.com 或只是 google.com 它工作正常。

如果我将它设置为http://mydomain.com 它也很好用。

我无法弄清楚这一点,任何帮助将不胜感激。 ajax 调用是通过 https 完成的,如果这有什么不同的话。

ajax.php 文件对数据执行以下操作。

$mysqli = connect_db();
$query = $mysqli->prepare('UPDATE tbl SET website = ? WHERE username = ?');
$query->bind_param('ss', $website, $username);
$query->execute();
$query->close();
$mysqli->close();

【问题讨论】:

  • 尝试使用“http://localhost/”
  • @N20084753 这也会导致 404 错误。
  • 在网络选项卡上,失败请求的完整 url 是什么?
  • 你检查过apache重写规则吗?你如何发送原始数据?这是 url 编码的吗?
  • 我会设置代理或网络跟踪工具来查看导致 404 的请求。

标签: javascript php jquery ajax mysqli


【解决方案1】:

我认为这是服务器响应。服务器尽量防止跨域攻击。服务器日志中有什么?服务器是什么?

【讨论】:

  • 我在其他页面上测试过,我们的应用防火墙似乎不允许通过 url。我必须与安全部门合作。
猜你喜欢
  • 2011-05-21
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 2015-07-15
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 2017-12-01
相关资源
最近更新 更多