WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Dapper.net - anropa web service med parametrar (https://www.wn.se/forum/showthread.php?t=33750)

peterbf 2008-12-05 11:29

Tjenare!

Jag har skapat en "dapp": http://www.dapper.net/dapp-howto-use...kipediacontent
Samt en web service: http://www.dapper.net/services/Fetch...tFromWikipedia

Jag vill anropa denna web service med två inparametrar: SearchTerm, Language. Jag använder jQuery

Kod:

$.getJSON('http://www.dapper.net/services/FetchContentFromWikipedia',
  { SearchTerm: "Bob Marley", Language: "en" },

Fick svar från dapper.net's officiella forum där en rekommenderade att köra såhär istället:
Kod:

$.getJSON('http://www.dapper.net/transform.php?dappName=Fetchwikipediacontent&transformer=JSON&v_SearchTerm=Bob%20Marley&v_Language=en')
Men om jag kör ovanstående kod slutar jag upp med detta felmeddelandet:
Access to restricted URI denied.

Google gav mig denna förklaringen:
"The problem is caused because you are trying to do a cross domain AJAX call and there are security blocks against this."

Är det någon som kanske har egna erfarenheter av dapper.net och råkat ut för samma sak?

HenSod 2008-12-05 12:07

Problemet ligger inte hos Drapper.net utan på webbläsarens säkerhetsinställningar. Det går inte att göra ett AJAX-anrop till en annan domän. Du får göra anropet till en t.ex. php-fil som sköter anropet till drapper.net.

peterbf 2008-12-05 14:01

Använder ASP.NET C# by the way.

Hmm. En vanlig redirect kan ju omöjligt fungera? Hur menar du?

peterbf 2008-12-05 14:51

Löste det med följande kod som returnerar datan till en web service som jag anropar i min ajax request:

Kod:

  private readonly static string WebServiceURL = "http://www.dapper.net/transform.php?dappName=Fetchwikipediacontent&transformer=JSON&v_SearchTerm={0}&v_Language={1}";

  public static string GetWikipediaContent(string searchTerm, string language) {

    string formattedUri = String.Format(CultureInfo.InvariantCulture, WebServiceURL, searchTerm, language);

    HttpWebRequest webRequest = GetWebRequest(formattedUri);

    HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();

    string jsonResponse = string.Empty;

    using (StreamReader sr = new StreamReader(response.GetResponseStream())) {
      jsonResponse = sr.ReadToEnd();
    }
    return jsonResponse;
  }



  private static HttpWebRequest GetWebRequest(string formattedUri) {

    Uri serviceUri = new Uri(formattedUri, UriKind.Absolute);

    return (HttpWebRequest)WebRequest.Create(serviceUri);
  }


peterbf 2008-12-05 15:21

Hur sätter jag min tråd som löst?

crazzy 2008-12-05 15:44

Citat:

Originally posted by peterbf@Dec 5 2008, 15:21
Hur sätter jag min tråd som löst?

Det räcker med att du har talat om att du fixade det och hur.


Alla tider är GMT +2. Klockan är nu 04:37.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson