我绞尽脑汁,无法让它发挥作用。
我正在使用jQuery来调用PHP页面:
$.ajax({
type: "POST",
url: postUrl,
data: formData,
async : false,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: App.successfulAdd,
error: App.errorAdd
});
successfulAdd : function(result) {
alert("Success!");
},
PHP:
echo json_encode(array('msg' => 'failed'));
Firebug节目:
{"msg":"failed"}
但是没有调用successAdd函数!知道为什么吗?
我已改为
$.ajax({
type: "POST",
url: postUrl,
data: formData,
async : false,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
alert("Success!");
},
error: function (data) {
alert("Error!");
}
});
但仍然错误!显示。
更新
最后我找到了! 使用Notepad ++并使用UTF8编码。在没有BOM的情况下更改为UTF8,现在一切都运行良好。
答案 0 :(得分:0)
尝试更改为:
success: function(result) {
App.successfulAdd(result);
},
error: function(result) {
App.errorAdd(result);
}
这将在响应到达时评估属性,而不是在发送请求时。我怀疑您在构建App
对象时发送了请求,但这些属性尚未分配。
答案 1 :(得分:0)
我想我找到了问题的原因:jQuery的版本。
版本:1.11.1,1.11.0,1.10.2,1.10.1,1.10.0,1.9.1,1.9.0无效。 版本1.8.3有效。