Avatar billede weinreich Nybegynder
15. maj 2012 - 14:04 Der er 6 kommentarer og
1 løsning

Hvordan lægger jeg data fra MVC ind på min side?

Hej Alle

Jeg har lavet en Web API Controller i C# .NET som udstiller data jeg gerne vil bruge i forbindelse med en mobile app.

Data bliver udstillet som følger:

http://ffxivdb.com/api/FFXIVItem/1021

Erstat evt. id med noget andet... der er noget på de fleste id'er under 1000

Det som jeg gerne vil have er at jeg på en hvilken som helst side kan bruge denne data.

Jeg har følgende kode som jeg havde brugt i starten:


   
    <div>
        Name: <span id="NameEN"></span>
    </div>
    <div>
        Rank: <span id="Rank"></span>
    </div>
   
   
    <script type="text/javascript">

        getItem(534, function (item) {
            $("#NameEN").html(item.NameEN);
            $("#Rank").html(item.Rank);
        });

        function getItem(id, callback) {
            $.ajax({
                url: "api/FFXIVItem",
                data: { id: id },
                type: "GET",
                contentType: "application/json;charset=utf-8",
                statusCode: {
                    200: function (item) {
                        callback(item);
                    },
                    404: function () {
                        alert("Not Found!");
                    }
                }
            });
        }

    </script>

Men jeg har et problem med denne i forbindelse med at det bliver cross domain og jeg derfor får fejl 504.

Hvad skal jeg gøre for at vise data fra siden i min mobile app (som bare en en html app og ikke decideret programmeret).
Avatar billede weinreich Nybegynder
15. maj 2012 - 14:06 #1
Og hvis jeg forvirrer begreberne undskylder jeg men jeg har ikke så meget erfaring i denne slags... troede egentlig at det skulle være så simpelt :D
Avatar billede jokkejensen Novice
15. maj 2012 - 14:30 #2
Det skal hostes på samme domæne, ellers vil du løbe ind i sådanne problemer.

Ligger løsningen json objecterne på en anden server, skal du lave en form for "proxy" som du kan hente dem igennem. Altså hovedparten af browserer tillader ikke crossdomain ajax, du skal have en lokal serverscript fil der kan servicere det data.

/J
Avatar billede weinreich Nybegynder
15. maj 2012 - 14:43 #3
Hmm jeg troede egentlig at jeg på en eller anden måde kunne læse det ligesom en lokal xml fil eller noget.

Jeg vil jo gerne udvikle det hele i javascript, html og css så jeg kan bruge PhoneGap, men hvis jeg skal til at have anden slags bagvedlæggende kode, kan jeg jo ikke rigtig nøjes med det.

Er der nogen forslag til hvordan jeg kan synliggøre data og derefter bruge dem i en flad html fil?
Avatar billede jokkejensen Novice
15. maj 2012 - 14:54 #4
Du kan jo bare skrive den xml fil fysisk ned til den mappe du benytter til dit js ?

/J
Avatar billede tjens Nybegynder
15. maj 2012 - 22:00 #5
Du kan udvide dit API-program til at kunne levere samme information i JSON-format.

Og så kan du lade javascriptet benytte JSONP teknikken til at hente data.
Søg selv på JSONP: Der komme gode links.
Avatar billede montago Praktikant
09. juni 2012 - 01:03 #6
i MVC kan du nøjes med at return JsonResult

fx:

public JsonResult getData()
{
  var mydata = new myClass{ data = 1 };

  return Json(mydata);
}
Avatar billede montago Praktikant
09. juni 2012 - 01:04 #7
og ellers har jokke ret i dit problem med CrossDomain
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester