使用 AJAX 调用 php 函数总是失败
Using AJAX to call a php function keeps failing
im 尝试获取 ajax 调用以触发 php 函数然后成功返回时遇到问题。据我所知,我的语法是正确的。
但我得到的只是失败!有什么想法吗?
编辑
我已经将我的 AJAX 请求更改为在不使用数据的情况下发送,只是为了排除这是一个问题,我已经实现了人们在下面建议的一些东西,但无济于事,这是我的 2 个文件现在的样子:
船舶.js:
function set_ship()
{
//var datastring = {'ship':'true'};
$.ajax({
type:'POST',
url:'soap/classes/class.ship.php',
success: function(success){
alert('success');
},
error: function(fail){
console.log(fail);
}
});
}
还有我的PHP类.php:
<?php
var_dump("hello");
header('Content-type: application/json');
echo json_encode(array("result"=>"true"));
从我的PHP脚本var_dump,我可以看到class.ship.php由于某种原因甚至没有被调用。
谢谢
请尝试这个
json_encode(array("result"=>"true"));
因为
json_encode(true) // will return just "true" which is not a valid json
还尝试序列化 dataString ,通过
data: datastring.serialize();
- 小写JSON_ENCODE 成功:函数(
成功),错误:函数(失败)- 检查Firebug的"网络"选项卡中返回的内容。
您需要将
内容标头设置为 json header('Content-type: application/json');
并确保仅请求返回 json 因为 ajax 只等待"JSON",它会抛出解析错误
if(isset($_POST['ship']) && $_POST['ship'] == "true"){
$result = "result";
header('Content-type: application/json');
echo json_encode(true);
}
我建议您检查服务器实际返回的内容。
错误回调接收一个表示 xhr 对象的参数,因此您可以通过放置断点或使用控制台日志记录直接检查该参数,如下所示
error: function(xhr) {
console.log(xhr);
}
同样,成功回调接收三个参数:状态、返回的数据和 XMLHTTPRequest 对象,因此您可以以相同的方式检查它们:
success: function(status, data, xhr) {
console.log(status, data, xhr);
}
您应该在 xhr 对象中查找响应状态代码和响应文本,以了解出了什么问题。如果看到 200 OK 响应状态,则从服务器返回的数据可能未正确解释为 JSON 数据,因此应尝试将响应标头服务器端设置为 application/json。
如果在响应中附加或附加了其他内容,也可能发生错误。尤其是当代码中在返回之前出现警告并且错误报告设置为 ON 时,会发生这种情况。
相关文章:
- 谷歌地图v3:当函数'失败'呼叫
- 由于angular定义的构造函数,Lodash-isEqual失败
- Jquery 悬停函数在将鼠标悬停在选择框上时会失败
- 为什么当我在正则表达式中放置空格键时,我的 Javascript test() 函数失败了
- 使用节点确定成功/失败.js函数 async.retry
- 不引人注目地设置属性后函数失败
- 谷歌地图API多段线创建失败;未捕获类型错误:数字不是函数;
- 我用脚本创建了一个按钮.我可以通过点击按钮调用其他函数吗?我这样做,但失败了
- Promise创建自定义失败不是函数Angularjs错误
- 返回按钮回调函数在特定情况下失败或未启动
- 为什么JavaScript函数在使用某些参数名称时会失败
- ajax中的refrer函数名,失败时反向回调
- 尽管有onload函数,但替换内部HTML失败
- 量角器:失败:row.findElement 不是一个函数
- javascript / jQuery “insertAfter” 函数参数中的空格会导致失败
- JavaScript 的 Array 调用和函数在 Prototype 中失败
- 如何将 $http.put 封装到一个函数中,该函数执行某些操作,然后返回通过或失败的承诺
- 使用 AJAX 调用 php 函数总是失败
- 如何在node中编写事件发射器.js让你创建一个函数“myFunction”,然后在运行时调用成功或失败
- 当调用适配器的过程失败时,失败函数不会执行