.ajax JSONP parsererror

Je suis en train d'utiliser un appel ajax pour ramener les données à partir d'une api web. J'ai écrit 2 fonctions similaires, et ne travaillent pas. Je peux voir les données de revenir par le biais de Fiddler, mais il n'ira pas à la réussite d'appel, pour les deux fonctions ci-dessous. Ce que je fais mal? Les données proviennent de retour dans les deux fonctions dans un violon, ça ne va pas se le succès.

Voici tentative 1:

    function PopulateDivisions()
{
    $.support.cors=true;


    $.ajax({
        type:'GET',
        url:'http://IP/Service/api/DivisionSearch/GetAllDivisions',
        data: {},
        contentType: 'application/json; charset=utf-8',
        dataType: 'jsonp',

        success: function(data) {

                alert(data);

                $("#divisionSelect").append($('<option></option>').val("-99").html("Select One"));
            $.each(data, function(i, item){
                $("#divisionSelect").append($('<option></option>').val(item.Name).html(item.Name));
            });
        },
        error: function(xhrequest, ErrorText, thrownError) {
            alert("Original: " + thrownError + " : " + ErrorText);
        }
    });

}

Erreur: jQuery19102671239298189216_1382022403977 n'a pas été appelé : erreur de l'analyseur de

Voici les données Fiddler est montrant retour:

    [{"Id":1,"Description":"Executive","Name":"Executive "},{"Id":2,"Description":"ASD","Name":"Administrative Services Division "},{"Id":3,"Description":"COM","Name":"Communications "},{"Id":4,"Description":"CP","Name":"Contracts and Procurement "},{"Id":5,"Description":"PMD","Name":"Program Management Division "},{"Id":6,"Description":"RED","Name":"Research and Evaluation Division "},{"Id":7,"Description":"IT","Name":"Information Technology "}]

Voici tentative n ° 2:

    function PopulateDivisions2()
{


    $.support.cors=true;


    $.ajax({
        type:'GET',
        url:'http://IP/Service/api/DivisionSearch/GetAllDivisionsJsonP',
        data: {},
        contentType: 'application/json; charset=utf-8',
        dataType: 'jsonp',
        jsonp: false,
        jsonpCallback: "myJsonMethod",

        success: function(data) {
                //data = JSON.parse(data):
                alert(data);

                $("#divisionSelect").append($('<option></option>').val("-99").html("Select One"));
            $.each(data, function(i, item){
                $("#divisionSelect").append($('<option></option>').val(item.Name).html(item.Name));
            });
        },
        error: function(xhrequest, ErrorText, thrownError) {
            alert("PopulateDivisions2:  " + thrownError + " : " + ErrorText);
        }

    });

}

Erreur: myJsonMethod n'a pas été appelé : parsererror

Voici les données Fiddler montre est de retour:

    "myJsonMethod([{\"Id\":1,\"Description\":\"Executive\",\"Name\":\"Executive \"},{\"Id\":2,\"Description\":\"ASD\",\"Name\":\"Administrative Services Division \"},{\"Id\":3,\"Description\":\"COM\",\"Name\":\"Communications \"},{\"Id\":4,\"Description\":\"CP\",\"Name\":\"Contracts and Procurement \"},{\"Id\":5,\"Description\":\"PMD\",\"Name\":\"Program Management Division \"},{\"Id\":6,\"Description\":\"RED\",\"Name\":\"Research and Evaluation Division \"},{\"Id\":7,\"Description\":\"IT\",\"Name\":\"Information Technology \"}]);"
  • recevez-vous json ou jsonp de votre demande ? Vous avez spécifié jsonp dans le code, mais le titre de la question dit "json", donc le problème est peut-être là...
  • J'ai mis le type de données que jsonp. Json ne pas apporter quelque chose de nouveau, c'est la croix de domaine, de sorte jsonp travaillé. Je peux voir les données dans un violon, juste ne pouvez pas obtenir du succès dans l'appel ajax.
  • Avez-vous jamais résoudre ce problème?
InformationsquelleAutor user1202606 | 2013-10-17