将 URL 作为发布数据传递时,jQuery ajax 返回 404 错误
Posted
技术标签:
【中文标题】将 URL 作为发布数据传递时,jQuery ajax 返回 404 错误【英文标题】:jQuery ajax returning 404 error when passing URL as post data 【发布时间】: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 的请求。 【参考方案1】:我认为这是服务器响应。服务器尽量防止跨域攻击。服务器日志中有什么?服务器是什么?
【讨论】:
我在其他页面上测试过,我们的应用防火墙似乎不允许通过 url。我必须与安全部门合作。以上是关于将 URL 作为发布数据传递时,jQuery ajax 返回 404 错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 jQuery 的 $.ajax() 将多个 Json 对象作为数据传递
如何使用 JQuery 将 HTML 表单字段作为数组直接传递到 CodeIgniter 中的数据库