C. *_*diu 28 php ajax jquery post
所以我现在有这个问题已经有一段时间了,我知道关于这个话题有无数的问题,相信我,我尝试了所有解决方案,但仍然无效.
这是最简单的例子,在我的情况下不起作用
jQuery的:
$.ajax({
url: "ajax/add-user.php",
type: "POST",
data: {name: 'John'},
success: function(data){
console.log(data);
}
});
Run Code Online (Sandbox Code Playgroud)
PHP
echo json_encode($_POST);
Run Code Online (Sandbox Code Playgroud)
而已.我总是回来一个空数组作为回应.我试过了serialize(),data:但响应总是空的.我没有得到任何错误,只是一个空数组,当我应该得到发布的值.
例如,如果在php中我尝试了echo一些硬编码变量,我会得到它们,但是$_POST并且$_GET不起作用.
我如何识别问题的任何解决方案或方法?
谢谢.
编辑/解决方案
好的,所以似乎问题是.htaccess重写了url并删除了扩展名.在网络选项卡中,确实永久地移动了请求.从ajax url中删除.php扩展名:解决了它.谢谢你,不好意思浪费时间.干杯
dre*_*ver 22
你需要在ajax调用中将数据类型设置为json
JQUERY CODE:
$.ajax({
url: "ajax/add-user.php",
type: "POST",
dataType:'json',
data: {name: 'John'},
success: function(data){
console.log(data);
}
});
Run Code Online (Sandbox Code Playgroud)
同时验证你的后端代码(php),它是否可以接受json数据?
如果没有,请配置如下标题
PHP代码:
json
快乐编码:
小智 12
我最近遇到过这个问题,但由于其他原因:
我的理由 - 我在服务器上有一个网址注册为:
http://mywebsite.com/folder/path/to/service/
Run Code Online (Sandbox Code Playgroud)
但是我的客户打来电话:
http://mywebsite.com/folder/path/to/service
Run Code Online (Sandbox Code Playgroud)
服务器上的.htaccess将此读取为301 GET重定向到正确的URL并删除POST数据.简单的解决方案是仔细检查网址路径.
@ C.Ovidiu,@ MarcB - 你们两个人在调试中节省了很多时间!
小智 6
为什么不使用jQuery.post?
$.post("ajax/add-user.php",
{name: 'John'},
function(response){
console.log(response);
}
);
Run Code Online (Sandbox Code Playgroud)
然后在你的PHP中你可以像这样保存输入:
if(isset($_POST["name"]))
{
$name= $_POST["name"];
file_put_contents("name.txt", $name)
header('HTTP/1.1 200 OK');
}
else
{
header('HTTP/1.1 500 Internal Server Error');
}
exit;
Run Code Online (Sandbox Code Playgroud)
尝试编辑您的代码并使用:
$.ajax({url: 'ajax/add-user.php',
type: 'POST',
data: {name: 'John'},
dataType: 'html',
success: function(data){
alert("success");
console.log(data);
},error: function (xhr, ajaxOptions, thrownError) {alert("ERROR:" + xhr.responseText+" - "+thrownError);}
});
Run Code Online (Sandbox Code Playgroud)
(所以你会收到一个错误和成功警报,确保你收到的是html。这些额外的参数将帮助你微调你的ajax调用。稍后使用异步true/false)
另外,在新窗口中运行程序 ajax/add-user.php (输入 url)并查看它回显的内容。编辑程序并强制回显您的内容“ie legend hello world”并查看您的 ajax 是否收到消息。
祝你好运。
| 归档时间: |
|
| 查看次数: |
86306 次 |
| 最近记录: |