2017-03-29 62 views
-1

我想傳遞一些值給服務器,它必須返回一個字符串。爲什麼我的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服務調用,進行參數缺失值:‘文件名’。」

+0

添加[ScriptMethod(UseHttpGet =真)]正下方[的WebMethod]的C#方法 – ProgrammerV5

+0

的可能的複製[Jquery的 - 使用POST請求,這是不允許的錯誤] (http://stackoverflow.com/questions/8883555/jquery-using-a-post-request-which-is-not-allowed-error) – mason

+0

爲什麼負面的標記。告訴我正確的原因。 –

回答

2

要發送的數據如下:

在對象格式

data: { fileName:fileName }, 

OR

爲一個字符串

data = "fileName="+filename; 
+0

我試過你的代碼,它不是worl –

+0

嘗試使用'method:「POST」'。 –

+0

我已經改變並嘗試過了。同樣的錯誤。 –

0

有一天我發現我的錯誤是什麼。

這是答案

data:'{fileName:"'+fileName+'"}' 
相關問題