Od dawna programista WinForm, ale nowy na scenie programowania WWW. Mam Visual Studio 2010 i stworzyłem nowy projekt WebSite. Nie mogę sprawić, by ajax wywoływał stworzony przeze mnie webmethod. Po kliknięciu przycisku na stronie nic się nie dzieje.Metoda WWW nie jest wywoływana przez jquery z funkcji javascript
Wygląda na to, że jQuery 1.4.1 zostanie automatycznie dodany w folderze Skrypty podczas tworzenia projektu WebSite.
W Default.aspx dodaję 2 tagów skryptu:
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript" src="Scripts/Process.js">
umieścić przycisk na stronie, w którym funkcja jest zdefiniowana w onclick Process.js:
<input id="btnTest" type="button" value="Test" onclick="btnTest_onclick()" />
W procesie. js mam następujący kod:
function btnTest_onclick() {
var strData = JSON.stringify({
userid: 5
});
alert(strData);
$.ajax({
url: 'Default.aspx/GetData',
type: "POST",
data: strData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: Success,
failure: Failure,
async: true
});
}
function Success(data) {
alert("success");
}
function Failure(data) {
alert("failure");
}
W Default.aspx.cs:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod()]
public static string GetData(int id)
{
return "hello, my id is " + id;
}
}
Wiesz ... zawsze można 'jquery' Update Package w konsoli, aby uzyskać najnowszą stabilną wersję jQuery (lub użyj UI zrobić to samo, a nawet zrobić to ręcznie poprzez zastąpienie skrypt file) – MilkyWayJoe
również, w [$ .ajax] (http://api.jquery.com/jQuery.ajax/) poprawne wywołanie zwrotne to "błąd", a nie "niepowodzenie". Zastąp to. – MilkyWayJoe
Czy 1.4.1 nie jest stabilny? Sądzę, że ponieważ MS wydaje się automatycznie włączać to dla ciebie, zakładałem, że musi być stabilny. To działało, pokazując mi, że to zawodzi, dzięki. Teraz muszę dowiedzieć się, dlaczego to się nie udaje :) – user441521