我面临着jQuery和AJAX的一个非常奇怪的问题。我的AJAX调用转到
success
使用IE8,但进入
error
使用IE10、Chrome和Firefox。
以下是Zend Framework 2中的PHP代码:
$response = $this->getResponse();
$headers = $response->getHeaders();
$headers->clearHeaders()
->addHeaderLine('Content-Type', 'application/json; charset=utf-8');
$response->setContent(json_encode($array));
return $response;
哪里
$array
是一个PHP数组。
这是我的Javascript代码:
$.ajax({
url: "/application/getTypeDossierParPilote/" + idPilote,
type: "POST",
async : false,
success: function(data) {
LISTE_TYPE_BANDEAU = data;
ID_PILOTE_SELECTED_BANDEAU = idPilote;
LISTE_TYPE_BANDEAU_LOADED_BANDEAU = true;
},
error: function errorHandler(e)
ID_PILOTE_SELECTED_BANDEAU = 0;
LISTE_TYPE_BANDEAU_LOADED_BANDEAU = false;
LISTE_TYPE_BANDEAU = null;
}
});
当使用IE8时,它会转到
成功
并且数据是可用的。当使用IE10时,它会转到
错误
虽然,当我的客户在IE10上尝试时,他没有遇到任何问题,所以我认为这是直接的
成功
.
我尝试过添加类似的内容
dataType: "json",
甚至
dataType: "html",
检查JSON是否正确,然后转到
成功
在后一种情况下,但数据不可用。
当我使用浏览器的开发人员模式复制响应主体并检查
http://jsonlint.com/
无论JSON是否正确,我都会收到以下消息:
JSON。parse:JSON数据第1行第1列出现意外字符
其中第一个字符是大括号。下面是我得到的JSON示例:
{
"typeDossier": [
{
"type": "MED",
"famille": "AEC",
"codeType": 1,
"session": ""
},
{
"type": "HPS",
"famille": "AEC",
"codeType": 2,
"session": ""
}
],
"aecHps": true,
"CodeAecHps": "1,2,",
"tous": "1,2,"
}
希望你能帮我解决这个奇怪的问题。提前谢谢。
当做