SOAP Javascript / jQuery

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis Sluijk

Dennis Sluijk

02/02/2012 16:20:40
Quote Anchor link
Hallo,

Ik heb een ASP.NET Webservice gemaakt daar wil ik nu met jQuery een functie aanroepen. Wat ik doe...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        <script type="text/javascript">
        
        var address = "http://localhost:56777/BMI.asmx/Test";
    
        function test() {
                $.ajax({
                type: "POST",
                url: address,
                data: { 'x': 'adasd' },
                dataType: "jsonp",
                contentType: "application/json; charset=utf-8",
                succes: function(data) {
                    alert(data.x);     
                }, error: function() {
                    alert("ERROR");
                }

                });        

        }
        
        </script>


Wat ik nu doe ik voer functie Test uit van mijn webservice ik krijg wel een response maar wat het probleem is als ik die response krijg. zet die het in een .js bestandje waardoor die hij de verkregen XML als een error ziet:

Test:1Uncaught SyntaxError: Unexpected token <

Weet iemand hoe ik dit moet doen ik heb al heel lang zitten Googlen maar krijg maar niet het antwoord.

Groeten,

Dennis
Gewijzigd op 02/02/2012 16:30:39 door Dennis Sluijk
 
PHP hulp

PHP hulp

02/05/2024 17:15:34
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/02/2012 16:46:58
Quote Anchor link
Leuk een asp.net vraag op een php forum.
Ik denk dat ut het meer te maken heeft met de response die je krijgt uit je script
Gewijzigd op 02/02/2012 16:48:27 door Ger van Steenderen
 
Dennis Sluijk

Dennis Sluijk

02/02/2012 16:49:12
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">adasd</string>

Dit krijg ik terug
Gewijzigd op 02/02/2012 16:50:05 door Dennis Sluijk
 
TJVB tvb

TJVB tvb

02/02/2012 16:59:27
Quote Anchor link
Maar je zegt tegen jquery dat die json terug moet krijgen, of zie ik dat verkeerd?
 
Dennis Sluijk

Dennis Sluijk

02/02/2012 17:04:28
Quote Anchor link
Jah klopt, vind ik ook al zo raar. Ik snap er op het moment even niets meer van.
 
Joakim Broden

Joakim Broden

02/02/2012 17:07:33
Quote Anchor link
Hoezo vind je het raar? je zegt tegen jQuery dat hij JSON terug krijgt, maar hij krijgt HTML terug. Dan zegt jQuery dat dat niet kan.
 
Dashti webdeveloper

Dashti webdeveloper

02/02/2012 19:16:31
Quote Anchor link
@Dennis

Hoe ziet jouw ASP code er uit?

ten tweede, ik zou geen xml gebruiken. JSON is veel beter.
 
Dennis Sluijk

Dennis Sluijk

02/02/2012 19:34:47
Quote Anchor link
Het probleem is dat ik jsonp moet gebruiken omdat het cross domain is.
 
Pieter Jansen

Pieter Jansen

02/02/2012 20:14:17
Quote Anchor link
Kun je even overnieuw beginnen met je verhaal? Nu snappen wij er ook niets van.

Even kort: JSON = JSONP

Als je dat als datatype terug wilt, moet je dat ook gaan geven. In asp.NET kun je ook heel prima wrappers gebruiken voor JSON. Als het goed is heb je ook een writer om dat te genereren.
 
Dennis Sluijk

Dennis Sluijk

02/02/2012 20:24:34
Quote Anchor link
IK heb een ASP.NET WEbservice

Source Code:

WebService1.asmx.cs
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Serialization;
using System.Web.Script.Services;

namespace Webservice
{
    /// <summary>
    /// Summary description for WebService1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]


    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
     [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }
}


Web.config

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0"?>

<configuration>
    <system.web>
      <webServices>
        <protocols>
          <add name="HttpGet"/>
          <add name="HttpPost"/>
        </protocols>
      </webServices>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>

</configuration>







Ik heb een pagina waarmee ik met jquery functie HelloWorld wil uitvoeren.
Omdat die pagina op een andere domein staat moet ik jsonp gebruiken (Volgens Google).
Ik zeg in mijn HelloWorld method dat ik de response format graag in json wil laten terug komen.
Ik krijg nu nog steeds XML terug:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">Hello World</string>



Daardoor krijg ik waarschijnlijk deze error:

HelloWorld:1Uncaught SyntaxError: Unexpected token <

Weet iemand een manier waardoor ik json als response terug krijg??
 
Pieter Jansen

Pieter Jansen

02/02/2012 20:53:53
Quote Anchor link
Hoe leg jij een link tussen WebService1.asmx en BMI.asmx? Sterker, MBI.asmx/Test

Want op dit moment zie ik nog nergens een referentie van en naar. Die code uit WebService zal wel als JSON komen maar ergens anders gaat er iets mis.
 
Dennis Sluijk

Dennis Sluijk

02/02/2012 22:14:33
Quote Anchor link
Het bovenste heb ik op mijn stage gemaakt daardoor kan ik helaas niet bij de bestanden de reactie later heb ik thuis gemaakt maar ik heb precies het zelfde gedaan als op mijn stage maar in plaats van BMI nu Webservice1
 
Pieter Jansen

Pieter Jansen

02/02/2012 22:26:39
Quote Anchor link
Oke, probeer het eens met een lege data string dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var address = "http://localhost:56777/BMI.asmx/HelloWorld";

        function test() {
                $.ajax({
                type: "POST",
                url: address,
                data: "{}",
                dataType: "jsonp",
                contentType: "application/json; charset=utf-8",
                succes: function(data) {
                    alert(data.x);    
                }, error: function() {
                    alert("ERROR");
                }

                });        
        }
 
Dashti webdeveloper

Dashti webdeveloper

03/02/2012 10:49:09
Quote Anchor link
Hey Dennis,

Hier ben ik ook bezig met een afstudeerproject en toevallig heb ik ook te maken met JSON en APS.net.
Ik heb dit anders opgelost.
Ik heb in mijn mvc3 een controller gemaakt die als SOAP service werkt. De reden dat ik een controller gebruik en geen WCF is puur flexibliteit. In een controller kan je alle kanten op.

Controller:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
[HttpPost]
public ActionResult GetString (int id)
{
  // connection met db

  return Json( new { naam = "MijnNaam" });
}


JavaScript:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var d = "id=1";
$.ajax({
  type: "POST",
  url: actionURL,  // <-- zoiets --> http://localhost/Home/GetString/
  data: d,         // hier kan ook parameters mee sturen met je POST
  success: function (r) {
    strNaam = r.naam;
  },
  complete: function () {
   // strNaam ergens tonen
  },
  error: function (req, status, error) {
    // hier een foutmelding laten zien                
  }
});


en dat is alles :)
Gewijzigd op 03/02/2012 10:49:51 door Dashti webdeveloper
 
Dennis Sluijk

Dennis Sluijk

03/02/2012 14:47:16
Quote Anchor link
Is jouw webservice extern? (op een ander domein)
 
Dashti webdeveloper

Dashti webdeveloper

03/02/2012 17:11:01
Quote Anchor link
Ja dat is de bedoeling. Hij moet bereikbaar zijn vanaf een android telefoon.
 
Dennis Sluijk

Dennis Sluijk

07/02/2012 13:59:29
Quote Anchor link
Jah precies. Daar ben ik nu ook mee bezig. Ik moet een Android apps maken met PhoneGap dan kan je met HTML5 en javascript apps maken.

Toevoeging op 07/02/2012 14:10:19:

In welke dll zit Json class?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.