代码之家  ›  专栏  ›  技术社区  ›  mentinet

AJAX jQuery在IE8中成功,在IE10/Chrome/FF中失败

  •  -1
  • mentinet  · 技术社区  · 9 年前

    我面临着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,"
    }
    

    希望你能帮我解决这个奇怪的问题。提前谢谢。 当做

    1 回复  |  直到 9 年前
        1
  •  0
  •   Community CDub    7 年前

    我的问题已经解决,并且是由出现在我项目的配置文件中的BOM字符引起的。

    点击此处查看我是如何修复的: Web server response generates UTF-8 (BOM) JSON