【发布时间】:2014-07-29 23:41:44
【问题描述】:
我正在尝试通过 ajax post 发送一些数据,并在服务器上执行一些任务,然后返回结果。这是一个前任:我已经完成了
function sometask(id) {
$.ajax({
type: 'POST',
url: '/ajaxPost/task/',
data: {title: 'test', text: 'test2'},
dataType: 'text',
success: function(data) {
console.log('success');
console.log(data);
},
error: function () {
console.log('failed');
}
});
}
在服务器端
<?php
var_dump($_POST);
exit;
在 html 上做点什么
预期结果是通过 ajax 发送的数据以数组形式返回。但它返回空数组。
在 ajax 和服务器端将类型更改为 'GET' 时 var_dump($_GET);返回数据。
那么为什么它适用于 get 而不是 post,我哪里出错了?
【问题讨论】:
-
别听@kiamnemr,你的代码没有问题。我会建议使用非目录资源,即代替
/ajaxPost/task/,尝试/ajaxPost/task/index.php(或您的脚本名称实际上是什么) -
感谢 Phil,但我使用路由协议进行访问,因此文件路径与我发送数据的 url 完全不同。
-
@AbhishekSalian 检查浏览器开发者控制台中的 Network 选项卡。您应该会看到 AJAX POST 请求和后续响应
-
@AbhishekSalian 它确实有效,因为我已经尝试过您的示例完全相同,您可以尝试类似
http://www.yoursite.com/AjaxPost/task的方法吗?还要检查上面菲尔的评论 -
@AbhishekSalian 您的代码或配置中的某些内容正在使用 PRG 模式重定向请求。另请注意,我在第一条评论中确实建议您使用 非目录资源
标签: javascript php jquery ajax post