gpt4 book ai didi

jquery - 尝试通过 AJAX 提交时出现 %5Bobject%20Object%5D(未找到 404)

转载 作者:行者123 更新时间:2023-12-03 21:54:26 30 4
gpt4 key购买 nike

我正在尝试通过 ajax 将变量传递给将运行 MySQL 查询的 PHP 脚本。但是,我不断收到错误 404 Not Found:“http://myurl/database/%5Bobject%20Object%5D”。

看起来它正在尝试将数据发送到 http://myurl/database/%5Bobject%20Object%5D而不是我定义的 PHP 脚本。真的对这个不知所措...我认为输入绝对 URL 会起作用。

下面是我的代码。将永远感激任何帮助......

<script type="text/javascript">
function insertData()
{
var dataid= $('#dataid').attr('value');
var industry = $('#industry').attr('value');
var geolocation = $('#geolocation').attr('value');
$.post({
type: "POST",
url: "http://myURL/database/InsertData.php",
data: "dataid="+ dataid+"&amp;industry="+ industry +"&amp;geolocation="+ geolocation,
});
return false;
};

</script>

最佳答案

正如安迪所说,$.post需要一个 URL 字符串作为第一个参数;如果你想传递一个选项对象,你必须使用 $.ajax .

当您尝试调用$.post(<option object>)时,选项对象用作URL;在这个过程中,它被转换为字符串(并且转换为字符串的对象在 Javascript 中变为 [object <type>] ;在本例中为 [object Object] ),它得到 URL 编码( %5Bobject%20Object%5D ),并且,因为它确实如此不以 / 开头或协议(protocol)名称,它被解释为相对 URL,并以当前协议(protocol)、域和路径为前缀。然后,由于没有更多参数,因此将向该 URL 发送一个空的 POST AJAX 请求。

另一个问题是您使用 &amp;分离参数;这应该只在 HTML 中完成,在这里你应该只使用 & 。 (或者是一个数据对象,正如 Evan 所说,这样你就不需要考虑编码问题。)并且 .val().attr('value')不一样;第一个是字段的当前值,第二个是加载页面时它具有的任何值。

最简单的正确方法是:

function insertData() {
var data = $('#dataid,#industry,#geolocation').serialize();
$.post('http://myURL/database/InsertData.php', data);
return false;
}

这假设三个字段具有相同的 nameid$.serialize使用name参数名称。

关于jquery - 尝试通过 AJAX 提交时出现 %5Bobject%20Object%5D(未找到 404),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10357445/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com