Hallo,

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


		<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
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

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">adasd</string>

Dit krijg ik terug
Maar je zegt tegen jquery dat die json terug moet krijgen, of zie ik dat verkeerd?
Jah klopt, vind ik ook al zo raar. Ik snap er op het moment even niets meer van.
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.
@Dennis

Hoe ziet jouw ASP code er uit?

ten tweede, ik zou geen xml gebruiken. JSON is veel beter.
Het probleem is dat ik jsonp moet gebruiken omdat het cross domain is.
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.
IK heb een ASP.NET WEbservice

Source Code:

WebService1.asmx.cs

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


<?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:


<?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??
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.

Reageren