我想傳遞一些值給服務器,它必須返回一個字符串。爲什麼我的ajax查詢中發生內部服務器錯誤?
jQuery的版本
<script src="js/jquery-3.1.1.js"></script>
這裏是我的代碼:
$('#btnSaveFile').click(function() {
var fileName = $('#txtFileName').val();
alert(fileName);
$.ajax({
url: 'ReportTotalSalesPivot.aspx/getFileExistOrNot',
method: 'GET', //method or type ?
contentType: 'application/json',
data: '{fileName:' + fileName +'}', //UPDATED Line
dataType: 'json',
success: function (data) {
alert('success');
alert(data.d.exist);
},
error: function (error) {
alert('fail');
alert(error);
}
});
});
.aspx的代碼
[WebMethod]
public static string getFileExistOrNot(string fileName)
{
string cs = ConfigurationManager.ConnectionStrings["HQWebMatajer13"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select ReportData FROM [HQWebMatajer].[dbo].[ReportSave] where [email protected] and [email protected]";
cmd.Parameters.AddWithValue("@UserFileName", fileName);
cmd.Parameters.AddWithValue("@ReportName", "TotalSales");
con.Open();
var data = cmd.ExecuteScalar();
if (data != null)
{
string exist = "dataExist";
return exist;
}
else
{
string exist = "notExist";
return exist;
}
}
}
錯誤消息 GET http://localhost:55047/ReportTotalSalesPivot.aspx/getFileExistOrNot?fileName:www} 500 (Internal Server Error)
ExceptionType: 「System.InvalidOperationException」
消息: 「試圖調用的方法 'getFileExistOrNot' 使用GET請求,這是不允許的。」
堆棧跟蹤: 「在System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData,HttpContext的上下文) ↵在System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext的上下文中,WebServiceMethodData methodData)」。
我覺得這個錯誤發生在服務器端。但我不知道那是什麼
更新
錯誤消息:「無效的Web服務調用,進行參數缺失值:‘文件名’。」
添加[ScriptMethod(UseHttpGet =真)]正下方[的WebMethod]的C#方法 – ProgrammerV5
的可能的複製[Jquery的 - 使用POST請求,這是不允許的錯誤] (http://stackoverflow.com/questions/8883555/jquery-using-a-post-request-which-is-not-allowed-error) – mason
爲什麼負面的標記。告訴我正確的原因。 –