2016-08-09 116 views
1

Ich verwende , um Daten von einer Domäne an eine ASP.NET Seite zu senden, die sich in einer anderen Domäne befindet. Ich bin in der Lage, die Antwort von ASP.NET Seite zurück zu bekommen, aber ich bin nicht in der Lage, die Daten von JQuery Ajax zu senden. Hier ist mein Code:So senden Sie Daten von JQuery Ajax an die ASP.NET-Seite?

 $.ajax({ 
      url: 'http://somewebsite/dbd/leap.aspx', 
      data: '{ year: "' + $('#txtYear').val() + '"}', 
      type: 'POST', 
      async: true, 
      cache: false, 
      dataType: 'jsonp', 
      crossDomain: true, 
      contentType:"application/json; charset=utf-8", 
      success: function (result) { 
       console.log("inside sucess"); 
       console.log("result: " + result); 
      }, 
      error: function (request, error) { 
       // This callback function will trigger on unsuccessful action     
       alert('Error!'); 
      } 
     }); 

Ich kann leap.aspx Seite erreichen. Hinweis http://somewebsite ist nur ein Platzhalter.

leap.aspx hat die folgende:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="leap.aspx.cs" Inherits="_Default" %> 
<%=output %> 

leap.aspx.cs hat folgende: Hinweis Ich Request.Params["year"] mit dem Wert des Jahres durch Ajax Aufruf übergeben zu bekommen, aber kein Glück.

using System; 

public partial class _Default : System.Web.UI.Page 
{ 
public string output = ""; 
protected void Page_Load(object sender, EventArgs e) 
{ 
if (Request.Params["callback"] != null) 
    { 
     output = Request.Params["callback"] + "('" + GetData(Request.Params["year"]) + "')"; 
    } 
} 

[System.Web.Services.WebMethod] 
public string GetData(string year) 
{ 
return "From outer space! " + year; 
} 

}

Wenn ich diesen Code ausführen, in der Konsole sehe ich

"Ergebnis: Vom Weltraum!"

aber ich sehe nicht die Daten für Jahr von Ajax gesendet. Ich verwende JSONP, weil ich eine domänenübergreifende Anfrage mache, um die Same Origin Policy zu umgehen. Ich bekomme keinen Fehler. Ich bekomme nur nicht den Wert des Jahres von ASP.NET Seite erhalten.

Wie bekomme ich das Jahr?

+0

wenn die Daten {Jahr: „2001“} Ich in vielen Fällen denken Sie, die .json wollen den Schlüssel haben, in Anführungszeichen und der Wert ... ändert sich das Format von 'data:' zu {"year": "2001"}? –

Antwort

0

Ändern Sie die Einstellungsdaten, die Anführungszeichen wie folgt zu entfernen:

data: { year: $('#txtYear').val() }, 
+0

Danke Matt. Wechseln zu Daten: {Jahr: "+ $ ('# txtYear'). Val() + '"} behebt das Problem. Ich bekomme jetzt das Jahr zurück. – citm09