我有一個在本地正常工作的ajax調用,但是當我將它發佈到服務器時,代碼永遠不會執行,但返回「200 OK」。沒有「成功」代碼被引發,也沒有「錯誤」代碼。這是我的阿賈克斯電話:
$.ajax({
type: "POST",
url: "/CargadorContadores.aspx/ObtenerContadores",
contentType: "application/json; charset=utf-8",
data: "",
async: false,
dataType: "json",
success: function(data) {
var myObj = JSON.parse(data.d);
for (var i = 0; i < myObj.length; i++) {
var element = document.getElementById("LbItem " + myObj[i].MenuItemID);
element.innerHTML = "<b>" + element.innerHTML + " (" + myObj[i].Cantidad + ")</b>";
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
});
});
我也試圖把完整的網址在「url」字段,但仍然沒有運氣。 奇怪的是,當我把完整的URL直接放入瀏覽器時,它仍然沒有執行代碼。它在當地很好地工作!
我知道有一個類似的帖子(jQuery $.ajax failing silently, no error messages, and server responded with 200 OK),但沒有解決,它在這裏瘋狂。
PD:這不是跨域,我的Ajax代碼是在的.ascx,我試圖調用一個方法在一個.aspx
非常感謝!!!!
編輯:我試圖刪除我的web項目的System.web.extensions引用,並將dll添加到我的bin,但它仍然不起作用(1.0.61025.0版本)。此外,我在IIS中運行的ASP.NET網站與框架2.0,我沒有框架3.5安裝在我的服務器上(但我本地)。也許這就是問題所在?由於客戶端安全策略,我無法安裝它,我該怎麼辦?
編輯2:我試着從我的.aspx做一個簡單的迴應,只是爲了測試問題是否在該方法中,但它仍然沒有執行成功函數。這裏是我的.aspx代碼:
[WebMethod]
public static string ObtenerContadores()
{
return new JavaScriptSerializer().Serialize("true");
}
和改編的.ascx
$.ajax({
type: "POST",
url: "/CargadorContadores.aspx/ObtenerContadores",
contentType: "application/json; charset=utf-8",
data: "",
async: false,
dataType: "json",
success: function(dictionary) {
alert("hello");
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
});
});
問題是在服務器端檢查響應 – Abdessamad